Aleksander Cynarski
af76d066c9
All checks were successful
continuous-integration/drone/push Build is passing
120 lines
2.4 KiB
Docker
120 lines
2.4 KiB
Docker
ARG PHP_VERSION=7.4-fpm-alpine3.13
|
|
|
|
FROM paramah/base:alpine as base-config
|
|
|
|
#
|
|
# Build php extenstions
|
|
#
|
|
#==================================================
|
|
FROM php:${PHP_VERSION} as builder
|
|
|
|
RUN apk add --no-cache wget \
|
|
curl \
|
|
bash \
|
|
git \
|
|
openssh \
|
|
openssl \
|
|
bzip2-dev \
|
|
curl-dev \
|
|
libpng libpng-dev \
|
|
icu-dev \
|
|
gettext gettext-dev \
|
|
imap-dev \
|
|
ldb-dev libldap openldap-dev \
|
|
oniguruma-dev \
|
|
postgresql-dev \
|
|
sqlite sqlite-dev \
|
|
libxml2-dev \
|
|
libzip libzip-dev zip \
|
|
freetype-dev \
|
|
libpng-dev \
|
|
jpeg-dev \
|
|
libjpeg-turbo-dev
|
|
|
|
COPY docker/ /
|
|
|
|
# Configure php extensions
|
|
RUN /usr/local/bin/php_configure.sh
|
|
|
|
|
|
# Install php extensions
|
|
RUN docker-php-ext-install -j$(nproc) \
|
|
calendar \
|
|
bcmath \
|
|
bz2 \
|
|
curl \
|
|
fileinfo \
|
|
gd \
|
|
gettext \
|
|
iconv \
|
|
imap \
|
|
intl \
|
|
json \
|
|
ldap \
|
|
mbstring \
|
|
opcache \
|
|
pcntl \
|
|
pdo \
|
|
pdo_mysql \
|
|
pdo_pgsql \
|
|
pdo_sqlite \
|
|
pgsql \
|
|
phar \
|
|
session \
|
|
simplexml \
|
|
soap \
|
|
xml \
|
|
zip
|
|
|
|
#
|
|
# Final image
|
|
#
|
|
#==================================================
|
|
FROM php:${PHP_VERSION}
|
|
ARG ENVIRONMENT=production
|
|
|
|
# install system libs
|
|
RUN apk add --no-cache libintl c-client libpng icu-libs libldap libpq libjpeg freetype libzip shadow sudo
|
|
|
|
# Install apps
|
|
RUN apk add --no-cache wget curl bash git openssh supervisor nginx openssl zip
|
|
|
|
|
|
ENV DIR /var/www
|
|
ENV DOCKERIZE_VERSION v0.6.1
|
|
|
|
# Install dockerize
|
|
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
|
&& tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
|
&& rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz
|
|
|
|
COPY --from=base-config /etc/supervisor /etc/supervisor
|
|
COPY --from=builder /usr/local/lib/php /usr/local/lib/php
|
|
COPY --from=builder /usr/local/etc /usr/local/etc
|
|
|
|
# Copy base files to docker container
|
|
COPY docker/ /
|
|
|
|
#PHP helper
|
|
RUN /usr/local/bin/php_helper.sh
|
|
|
|
#install cachetool
|
|
RUN wget -O /bin/cachetool http://gordalina.github.io/cachetool/downloads/cachetool.phar
|
|
RUN chmod a+x /bin/cachetool
|
|
|
|
#install phpunit
|
|
RUN wget -O phpunit https://phar.phpunit.de/phpunit-9.phar
|
|
RUN install phpunit /usr/local/bin
|
|
|
|
# Create directories
|
|
RUN mkdir -p /var/www
|
|
|
|
WORKDIR $DIR
|
|
|
|
# Copy base configuration files
|
|
COPY docker/etc /etc/
|
|
|
|
|
|
EXPOSE 80
|
|
|
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"] |