107 lines
3.1 KiB
Docker
107 lines
3.1 KiB
Docker
FROM php:8.3-fpm-alpine AS chill_base_php82
|
|
|
|
ENV POSTGRES_VERSION=14
|
|
|
|
# default UID for the PHP user
|
|
ARG UID=1000
|
|
ARG GID=1000
|
|
|
|
# install php extensions and deps
|
|
# apk add --no-cache --update --virtual rabbitmq-c-dev rabbitmq-c-utils gcc g++ make autoconf && pecl install amqp
|
|
RUN apk update && apk add --no-cache \
|
|
wget gnupg \
|
|
libpq-dev \
|
|
icu-dev icu-libs icu-data-full \
|
|
oniguruma-dev \
|
|
libzip libzip-dev \
|
|
linux-headers \
|
|
gcc g++ make autoconf \
|
|
bash git \
|
|
rabbitmq-c rabbitmq-c-dev \
|
|
&& docker-php-ext-install pdo_pgsql intl mbstring zip bcmath exif sockets \
|
|
&& git clone https://github.com/nikic/php-ast.git \
|
|
&& cd php-ast \
|
|
&& phpize \
|
|
&& ./configure \
|
|
&& make install \
|
|
&& echo 'extension=ast.so' > /usr/local/etc/php/php.ini \
|
|
&& cd .. && rm -rf php-ast \
|
|
&& pecl install redis \
|
|
&& docker-php-ext-enable redis \
|
|
&& pecl install amqp \
|
|
&& docker-php-ext-enable amqp \
|
|
&& apk add libpng-dev libjpeg-turbo-dev freetype-dev \
|
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
&& docker-php-ext-install -j$(nproc) gd \
|
|
&& apk add postgresql${POSTGRES_VERSION}-client \
|
|
&& apk del --purge wget gnupg libpq-dev icu-dev oniguruma-dev libzip-dev linux-headers gcc g++ make autoconf
|
|
|
|
RUN { \
|
|
echo ""; \
|
|
echo "memory_limit = 512M"; \
|
|
echo ""; \
|
|
} >> /usr/local/etc/php/conf.d/memory_limit.ini
|
|
|
|
RUN { \
|
|
echo ""; \
|
|
echo "[Date]"; \
|
|
echo "date.timezone = Europe/Brussels"; \
|
|
echo ""; \
|
|
} >> /usr/local/etc/php/conf.d/date.ini
|
|
|
|
# temporary fix, while php-cs-fixer has conflict dependencies
|
|
# with chill
|
|
RUN curl -o /usr/local/bin/php-cs-fixer https://cs.symfony.com/download/php-cs-fixer-v3.phar \
|
|
&& chmod +x /usr/local/bin/php-cs-fixer
|
|
# to make php-cs-fixer works with php 8.2
|
|
ENV PHP_CS_FIXER_IGNORE_ENV=1
|
|
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
ENV COMPOSER_ALLOW_SUPERUSER=1
|
|
ENV COMPOSER_MEMORY_LIMIT=-1
|
|
|
|
# shell bash preference
|
|
RUN sed -i " \
|
|
s|root:x:0:0:root:/root:/bin/ash|root:x:0:0:root:/root:/bin/bash|g; \
|
|
s|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/sh|postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/bash|g" \
|
|
/etc/passwd
|
|
|
|
# chmod on redis.so
|
|
RUN chmod 755 -R /usr/local/lib/php/extensions/
|
|
|
|
WORKDIR /var/www/app
|
|
|
|
CMD ["php-fpm"]
|
|
|
|
FROM chill_base_php82 AS chill_php82
|
|
|
|
# copy directories
|
|
|
|
COPY ./bin /var/www/app/bin/.
|
|
COPY ./composer.* /var/www/app/
|
|
COPY ./config /var/www/app/config/.
|
|
COPY ./migrations /var/www/app/migrations/.
|
|
COPY ./public /var/www/app/public/.
|
|
COPY ./src /var/www/app/src/.
|
|
COPY ./templates /var/www/app/templates/.
|
|
COPY ./translations /var/www/app/translations/.
|
|
COPY ./vendor /var/www/app/vendor/.
|
|
|
|
COPY ./.env /var/www/app/.env
|
|
|
|
# import the manifest.json file
|
|
COPY ./public/build/manifest.json /var/www/app/public/build/manifest.json
|
|
|
|
ADD ./entrypoint.sh /.
|
|
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
|
|
ENV PHP_FPM_USER=www-data \
|
|
PHP_FPM_GROUP=www-data \
|
|
COMPOSER_HOME=/var/www/app/.composer \
|
|
SESSION_LIFETIME=10800
|
|
|
|
CMD [ "php-fpm" ]
|