Add Dockerfile
This commit is contained in:
99
Dockerfile
Normal file
99
Dockerfile
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
#
|
||||||
|
# Composer
|
||||||
|
#
|
||||||
|
FROM composer:2.0.8 as composer
|
||||||
|
|
||||||
|
#
|
||||||
|
# PHP
|
||||||
|
#
|
||||||
|
FROM php:8.0.1-cli-alpine3.12 as php-raw
|
||||||
|
|
||||||
|
ENV APP_DIR=/opt/app
|
||||||
|
ENV PATH=${APP_DIR}/bin:${APP_DIR}/vendor/bin:${PATH}
|
||||||
|
|
||||||
|
WORKDIR ${APP_DIR}
|
||||||
|
|
||||||
|
#
|
||||||
|
# > PHP EXTENSIONS
|
||||||
|
#
|
||||||
|
ENV PHP_EXT_DIR /usr/local/lib/php/extensions/no-debug-non-zts-20200930
|
||||||
|
RUN set -ex \
|
||||||
|
&& if [ `pear config-get ext_dir` != ${PHP_EXT_DIR} ]; then echo PHP_EXT_DIR must be `pear config-get ext_dir` && exit 1; fi
|
||||||
|
|
||||||
|
FROM php-raw AS php-build
|
||||||
|
RUN --mount=type=cache,target=/var/cache/apk \
|
||||||
|
set -ex \
|
||||||
|
&& apk add --update-cache \
|
||||||
|
$PHPIZE_DEPS
|
||||||
|
|
||||||
|
FROM php-build AS php-ext-zip
|
||||||
|
RUN --mount=type=cache,target=/var/cache/apk \
|
||||||
|
set -ex \
|
||||||
|
&& apk add \
|
||||||
|
libzip-dev \
|
||||||
|
&& docker-php-ext-install zip
|
||||||
|
|
||||||
|
FROM php-build AS php-ext-pcntl
|
||||||
|
RUN set -ex \
|
||||||
|
&& docker-php-ext-install pcntl
|
||||||
|
|
||||||
|
FROM php-build AS php-ext-sockets
|
||||||
|
RUN set -ex \
|
||||||
|
&& docker-php-ext-install sockets
|
||||||
|
|
||||||
|
FROM php-build AS php-ext-xdebug
|
||||||
|
RUN set -ex \
|
||||||
|
&& pecl install xdebug
|
||||||
|
|
||||||
|
FROM php-build AS php-ext-pcov
|
||||||
|
RUN set -ex \
|
||||||
|
&& pecl install pcov
|
||||||
|
|
||||||
|
FROM php-build AS php-ext-buffer
|
||||||
|
ENV EXT_BUFFER_VERSION 0.1.0
|
||||||
|
RUN set -ex \
|
||||||
|
&& curl -L https://github.com/phpinnacle/ext-buffer/archive/${EXT_BUFFER_VERSION}.tar.gz | tar xz \
|
||||||
|
&& cd ext-buffer-${EXT_BUFFER_VERSION} \
|
||||||
|
&& phpize && ./configure && make && make install
|
||||||
|
|
||||||
|
FROM php-build AS php-ext-snappy
|
||||||
|
ENV EXT_SNAPPY_VERSION 0.2.1
|
||||||
|
RUN --mount=type=cache,target=/var/cache/apk \
|
||||||
|
set -ex \
|
||||||
|
&& apk add snappy-dev \
|
||||||
|
&& curl -L https://github.com/kjdev/php-ext-snappy/archive/${EXT_SNAPPY_VERSION}.tar.gz | tar xz \
|
||||||
|
&& cd php-ext-snappy-${EXT_SNAPPY_VERSION} \
|
||||||
|
&& ls -al \
|
||||||
|
&& phpize && ./configure --with-snappy-includedir=/usr && make && make install
|
||||||
|
#
|
||||||
|
# < PHP EXTENSIONS
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM php-raw AS php
|
||||||
|
COPY --from=php-ext-zip ${PHP_EXT_DIR}/zip.so ${PHP_EXT_DIR}/
|
||||||
|
COPY --from=php-ext-pcntl ${PHP_EXT_DIR}/pcntl.so ${PHP_EXT_DIR}/
|
||||||
|
COPY --from=php-ext-sockets ${PHP_EXT_DIR}/sockets.so ${PHP_EXT_DIR}/
|
||||||
|
COPY --from=php-ext-xdebug ${PHP_EXT_DIR}/xdebug.so ${PHP_EXT_DIR}/
|
||||||
|
COPY --from=php-ext-pcov ${PHP_EXT_DIR}/pcov.so ${PHP_EXT_DIR}/
|
||||||
|
COPY --from=php-ext-buffer ${PHP_EXT_DIR}/buffer.so ${PHP_EXT_DIR}/
|
||||||
|
COPY --from=php-ext-snappy ${PHP_EXT_DIR}/snappy.so ${PHP_EXT_DIR}/
|
||||||
|
|
||||||
|
RUN --mount=type=cache,target=/var/cache/apk \
|
||||||
|
set -ex \
|
||||||
|
&& apk add \
|
||||||
|
# composer
|
||||||
|
git \
|
||||||
|
# ext-zip
|
||||||
|
libzip \
|
||||||
|
snappy \
|
||||||
|
&& docker-php-ext-enable \
|
||||||
|
buffer \
|
||||||
|
pcntl \
|
||||||
|
pcov \
|
||||||
|
snappy \
|
||||||
|
sockets \
|
||||||
|
zip
|
||||||
|
|
||||||
|
ENV COMPOSER_ALLOW_SUPERUSER 1
|
||||||
|
ENV COMPOSER_MEMORY_LIMIT -1
|
||||||
|
COPY --from=composer /usr/bin/composer /usr/bin/composer
|
Reference in New Issue
Block a user