Files
chill-base-app-v3/Dockerfile
T
2026-11-03 02:05:19 +00:00

38 lines
1.7 KiB
Docker

FROM chill/base-image:8.4-edge@sha256:61eb6a5272187ef6f50c82a876278bfda12e838ea085dd63f84c34815c0ef1c5
# copy directories with ownership for the unprivileged runtime user
COPY --chown=www-data:www-data ./bin /var/www/app/bin/.
COPY --chown=www-data:www-data ./composer.* /var/www/app/
COPY --chown=www-data:www-data ./config /var/www/app/config/.
COPY --chown=www-data:www-data ./migrations /var/www/app/migrations/.
COPY --chown=www-data:www-data ./public /var/www/app/public/.
COPY --chown=www-data:www-data ./src /var/www/app/src/.
COPY --chown=www-data:www-data ./templates /var/www/app/templates/.
COPY --chown=www-data:www-data ./translations /var/www/app/translations/.
COPY --chown=www-data:www-data ./vendor /var/www/app/vendor/.
COPY --chown=www-data:www-data ./.env /var/www/app/.env
# import the manifest.json file
COPY --chown=www-data:www-data ./public/build/manifest.json /var/www/app/public/build/manifest.json
COPY ./entrypoint.sh /entrypoint.sh
# - mark entrypoint executable
# - declare the FPM pool user/group at build time (was previously written by entrypoint.sh as root)
# - prepare writable Symfony var/ and COMPOSER_HOME directories for the unprivileged runtime user
RUN chmod +x /entrypoint.sh \
&& printf '[www]\nuser=www-data\ngroup=www-data\n' > /usr/local/etc/php-fpm.d/zz-user.conf \
&& mkdir -p /var/www/app/var/cache /var/www/app/var/log /var/www/app/.composer \
&& chown -R www-data:www-data /var/www/app/var /var/www/app/.composer \
&& chown www-data:www-data /var/www/app
# php-fpm listens on 9000 by default (unprivileged port)
EXPOSE 9000
USER www-data
ENTRYPOINT ["/entrypoint.sh"]
ENV COMPOSER_HOME=/var/www/app/.composer
CMD [ "php-fpm" ]