263 lines
7.4 KiB
Docker
263 lines
7.4 KiB
Docker
|
#+++++++++++++++++++++++++++++++++++++++
|
||
|
# Dockerfile for webdevops/php-official:7.4-alpine
|
||
|
# -- automatically generated --
|
||
|
#+++++++++++++++++++++++++++++++++++++++
|
||
|
|
||
|
|
||
|
# Staged baselayout builder
|
||
|
FROM toolbox AS baselayout
|
||
|
RUN mkdir -p \
|
||
|
/baselayout/sbin \
|
||
|
/baselayout/usr/local/bin \
|
||
|
# Baselayout scripts
|
||
|
&& wget -O /tmp/baselayout-install.sh https://raw.githubusercontent.com/webdevops/Docker-Image-Baselayout/master/install.sh \
|
||
|
&& sh /tmp/baselayout-install.sh /baselayout \
|
||
|
## Install go-replace
|
||
|
&& wget -O "/baselayout/usr/local/bin/go-replace" "https://github.com/webdevops/goreplace/releases/download/1.1.2/gr-arm64-linux" \
|
||
|
&& chmod +x "/baselayout/usr/local/bin/go-replace" \
|
||
|
&& "/baselayout/usr/local/bin/go-replace" --version \
|
||
|
# Install gosu
|
||
|
&& wget -O "/baselayout/sbin/gosu" "https://github.com/tianon/gosu/releases/download/1.10/gosu-arm64" \
|
||
|
&& wget -O "/tmp/gosu.asc" "https://github.com/tianon/gosu/releases/download/1.10/gosu-arm64.asc" \
|
||
|
&& export GNUPGHOME="$(mktemp -d)" \
|
||
|
&& gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
|
||
|
&& gpg --batch --verify /tmp/gosu.asc "/baselayout/sbin/gosu" \
|
||
|
&& rm -rf "$GNUPGHOME" /tmp/gosu.asc \
|
||
|
&& chmod +x "/baselayout/sbin/gosu" \
|
||
|
&& "/baselayout/sbin/gosu" nobody true
|
||
|
|
||
|
|
||
|
FROM php:7.4-fpm-alpine
|
||
|
|
||
|
LABEL maintainer=info@webdevops.io \
|
||
|
vendor=WebDevOps.io \
|
||
|
io.webdevops.layout=8 \
|
||
|
io.webdevops.version=1.5.0
|
||
|
|
||
|
ENV TERM="xterm" \
|
||
|
LANG="C.UTF-8" \
|
||
|
LC_ALL="C.UTF-8"
|
||
|
ENV DOCKER_CONF_HOME=/opt/docker/ \
|
||
|
LOG_STDOUT="" \
|
||
|
LOG_STDERR=""
|
||
|
ENV APPLICATION_USER=application \
|
||
|
APPLICATION_GROUP=application \
|
||
|
APPLICATION_PATH=/app \
|
||
|
APPLICATION_UID=1000 \
|
||
|
APPLICATION_GID=1000
|
||
|
ENV PHP_SENDMAIL_PATH="/usr/sbin/sendmail -t -i"
|
||
|
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so"
|
||
|
ENV COMPOSER_VERSION="2"
|
||
|
|
||
|
|
||
|
# Baselayout copy (from staged image)
|
||
|
COPY --from=baselayout /baselayout /
|
||
|
|
||
|
|
||
|
COPY conf/ /opt/docker/
|
||
|
|
||
|
RUN set -x \
|
||
|
# Init bootstrap
|
||
|
# Add community
|
||
|
&& echo https://dl-4.alpinelinux.org/alpine/v3.11/community/ >> /etc/apk/repositories \
|
||
|
# System update
|
||
|
&& /usr/local/bin/apk-upgrade \
|
||
|
# Install base stuff
|
||
|
&& apk-install \
|
||
|
bash \
|
||
|
ca-certificates \
|
||
|
openssl \
|
||
|
&& update-ca-certificates \
|
||
|
&& /usr/local/bin/generate-dockerimage-info \
|
||
|
## Fix su execution (eg for tests)
|
||
|
&& mkdir -p /etc/pam.d/ \
|
||
|
&& echo 'auth sufficient pam_rootok.so' >> /etc/pam.d/su
|
||
|
|
||
|
RUN set -x \
|
||
|
# Install services
|
||
|
&& chmod +x /opt/docker/bin/* \
|
||
|
&& apk-install \
|
||
|
supervisor \
|
||
|
wget \
|
||
|
curl \
|
||
|
vim \
|
||
|
sed \
|
||
|
tzdata \
|
||
|
busybox-suid \
|
||
|
&& chmod +s /sbin/gosu \
|
||
|
&& docker-run-bootstrap \
|
||
|
&& docker-image-cleanup
|
||
|
|
||
|
RUN set -x \
|
||
|
&& apk-install shadow \
|
||
|
&& apk-install \
|
||
|
# Install common tools
|
||
|
zip \
|
||
|
unzip \
|
||
|
bzip2 \
|
||
|
drill \
|
||
|
ldns \
|
||
|
openssh-client \
|
||
|
rsync \
|
||
|
patch \
|
||
|
git \
|
||
|
&& docker-run-bootstrap \
|
||
|
&& docker-image-cleanup
|
||
|
|
||
|
RUN set -x \
|
||
|
# Install php environment
|
||
|
&& apk-install \
|
||
|
imagemagick \
|
||
|
graphicsmagick \
|
||
|
ghostscript \
|
||
|
jpegoptim \
|
||
|
pngcrush \
|
||
|
optipng \
|
||
|
pngquant \
|
||
|
vips \
|
||
|
rabbitmq-c \
|
||
|
c-client \
|
||
|
# Libraries
|
||
|
libldap \
|
||
|
icu-libs \
|
||
|
libintl \
|
||
|
libpq \
|
||
|
libxslt \
|
||
|
libzip \
|
||
|
libmemcached \
|
||
|
yaml \
|
||
|
# Build dependencies
|
||
|
autoconf \
|
||
|
g++ \
|
||
|
make \
|
||
|
libtool \
|
||
|
pcre-dev \
|
||
|
gettext-dev \
|
||
|
freetype-dev \
|
||
|
libjpeg-turbo-dev \
|
||
|
libpng-dev \
|
||
|
vips-dev \
|
||
|
krb5-dev \
|
||
|
openssl-dev \
|
||
|
imap-dev \
|
||
|
imagemagick-dev \
|
||
|
rabbitmq-c-dev \
|
||
|
openldap-dev \
|
||
|
icu-dev \
|
||
|
postgresql-dev \
|
||
|
libxml2-dev \
|
||
|
ldb-dev \
|
||
|
pcre-dev \
|
||
|
libxslt-dev \
|
||
|
libzip-dev \
|
||
|
libmemcached-dev \
|
||
|
yaml-dev \
|
||
|
# Install guetzli
|
||
|
&& wget https://github.com/google/guetzli/archive/master.zip \
|
||
|
&& unzip master.zip \
|
||
|
&& make -C guetzli-master \
|
||
|
&& cp guetzli-master/bin/Release/guetzli /usr/local/bin/ \
|
||
|
&& rm -rf master.zip guetzli-master \
|
||
|
# https://github.com/docker-library/php/issues/240
|
||
|
&& apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted \
|
||
|
# Install new version of ICU
|
||
|
&& curl -sS -o /tmp/icu.tar.gz -L https://github.com/unicode-org/icu/releases/download/release-66-1/icu4c-66_1-src.tgz \
|
||
|
&& tar -zxf /tmp/icu.tar.gz -C /tmp && cd /tmp/icu/source && ./configure --prefix=/usr/local && make && make install && cd / && rm -rf /tmp/icu* \
|
||
|
# Install extensions
|
||
|
&& PKG_CONFIG_PATH=/usr/local docker-php-ext-configure intl \
|
||
|
&& docker-php-ext-configure gd --with-jpeg --with-freetype --with-webp \
|
||
|
&& docker-php-ext-configure ldap \
|
||
|
&& PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl \
|
||
|
&& docker-php-ext-install \
|
||
|
bcmath \
|
||
|
bz2 \
|
||
|
calendar \
|
||
|
exif \
|
||
|
ffi \
|
||
|
intl \
|
||
|
gettext \
|
||
|
ldap \
|
||
|
mysqli \
|
||
|
imap \
|
||
|
pcntl \
|
||
|
pdo_mysql \
|
||
|
pdo_pgsql \
|
||
|
pgsql \
|
||
|
soap \
|
||
|
sockets \
|
||
|
tokenizer \
|
||
|
sysvmsg \
|
||
|
sysvsem \
|
||
|
sysvshm \
|
||
|
shmop \
|
||
|
xmlrpc \
|
||
|
xsl \
|
||
|
zip \
|
||
|
gd \
|
||
|
gettext \
|
||
|
opcache \
|
||
|
# Install extensions for PHP 7.x
|
||
|
# Memcached for 7.3 can currently only be built from master
|
||
|
&& MEMCACHED="`mktemp -d`" \
|
||
|
&& curl -skL https://github.com/php-memcached-dev/php-memcached/archive/master.tar.gz | tar zxf - --strip-components 1 -C $MEMCACHED \
|
||
|
&& docker-php-ext-configure $MEMCACHED \
|
||
|
&& docker-php-ext-install $MEMCACHED \
|
||
|
&& rm -rf $MEMCACHED \
|
||
|
# Install vips (only works with PHP >= 7.0)
|
||
|
&& pecl install apcu \
|
||
|
&& printf "\n" | pecl install vips \
|
||
|
&& pecl install redis \
|
||
|
&& pecl install mongodb \
|
||
|
&& pecl install imagick \
|
||
|
&& pecl install amqp \
|
||
|
&& pecl install yaml \
|
||
|
&& docker-php-ext-enable \
|
||
|
apcu \
|
||
|
redis \
|
||
|
imagick \
|
||
|
mongodb \
|
||
|
amqp \
|
||
|
vips \
|
||
|
yaml \
|
||
|
# Uninstall dev and header packages
|
||
|
&& apk del -f --purge \
|
||
|
autoconf \
|
||
|
g++ \
|
||
|
make \
|
||
|
libtool \
|
||
|
pcre-dev \
|
||
|
gettext-dev \
|
||
|
freetype-dev \
|
||
|
libjpeg-turbo-dev \
|
||
|
libpng-dev \
|
||
|
vips-dev \
|
||
|
krb5-dev \
|
||
|
openssl-dev \
|
||
|
imap-dev \
|
||
|
rabbitmq-c-dev \
|
||
|
imagemagick-dev \
|
||
|
openldap-dev \
|
||
|
icu-dev \
|
||
|
postgresql-dev \
|
||
|
libxml2-dev \
|
||
|
ldb-dev \
|
||
|
pcre-dev \
|
||
|
libxslt-dev \
|
||
|
libzip-dev \
|
||
|
libmemcached-dev \
|
||
|
yaml-dev \
|
||
|
&& rm -f /usr/local/etc/php-fpm.d/zz-docker.conf \
|
||
|
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer2 \
|
||
|
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ --filename=composer1 --1 \
|
||
|
&& ln -sf /usr/local/bin/composer2 /usr/local/bin/composer \
|
||
|
# Enable php services
|
||
|
&& docker-service enable syslog \
|
||
|
&& docker-service enable cron \
|
||
|
&& docker-run-bootstrap \
|
||
|
&& docker-image-cleanup
|
||
|
|
||
|
WORKDIR /
|
||
|
EXPOSE 9000
|
||
|
ENTRYPOINT ["/entrypoint"]
|
||
|
CMD ["supervisord"]
|