Compare commits

..
3 Commits
Author SHA1 Message Date
renovate-bot 58ddd81fa1 Pin dependencies 2026-10-29 02:05:32 +00:00
julielenaerts f1878e72e0 Update to v2.13.6
build-images / build-and-push (push) Successful in 3m39s
2026-10-26 11:03:58 +01:00
julielenaerts 0e6ec94ae4 Run container as unprivileged www-data user and simplify entrypoint
- Remove root-only FPM user configuration from entrypoint.sh (moved to Dockerfile build time)
- Remove Redis session configuration from entrypoint.sh (handled by Symfony services)
- Remove cache directory permission adjustments (unnecessary with proper ownership)
- Set file ownership to www-data:www-data at build time using COPY --chown
- Create required directories and set ownership in single RUN layer
- Switch to www-data USER before CMD
- Remove PHP_FPM_USER, PHP_FPM_GROUP, SESSION_LIFETIME environment variables
- Add docker/ directory to .dockerignore
2026-10-26 11:02:05 +01:00
13 changed files with 58 additions and 48 deletions

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
## 2.13.6 - 2026-10-26
### DX
* Run container as www-data user instead of root
@@ -0,0 +1,15 @@
kind: Release
body: |
- axllent/mailpit: ->
- chill/base-image: 8.4-edge -> 8.4-edge
- chill/base-image: 8.4-edge -> 8.4-edge
- docker.elastic.co/logstash/logstash-oss: 8.1.0-amd64 -> 8.1.0-amd64
- gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image: latest -> latest
- intl-messageformat: ^10.5.11 -> 10.7.18
- nginx: ->
- redis: ->
- registry.gitlab.com/champs-libres/public/relatorio-tornado/app: latest -> latest
time: 2026-10-29T02:05:31+00:00
custom:
Issue: ""
+1 -1
View File
@@ -19,7 +19,7 @@ jobs:
password: ${{ secrets.OVH_REGISTRY_PASSWORD }}
- name: Install Dependencies and Build Assets
uses: docker://chill/base-image:8.4-edge
uses: docker://chill/base-image:8.4-edge@sha256:01e0a9f8703d882224357f0d5a189b1392a9846391b75aa568dda8d8aef5e387
env:
APP_ENV: prod
with:
@@ -19,7 +19,7 @@ jobs:
with:
cmd: 'cat composer.lock | jq --raw-output ''.packages[] | select ( .name | contains ("chill-project/chill-bundles")) | .version'''
- name: run composer update to update composer.lock
uses: docker://gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:latest
uses: docker://gitea.champs-libres.be/chill-project/chill-skeleton-basic/base-image:latest@sha256:d728a939475e465c488056ec8b9c12f31601ea27251aad830499577857b7be94
with:
# this is where we set the command to execute
args: composer update --no-install
+1 -1
View File
@@ -1,4 +1,4 @@
docker/
###> symfony/framework-bundle ###
/.env.local
/.env.local.php
+4
View File
@@ -6,6 +6,10 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
and is generated by [Changie](https://github.com/miniscruff/changie).
## 2.13.6 - 2026-10-26
### DX
* Run container as www-data user instead of root
## 2.13.5 - 2026-10-21
### Security
* Update with patch for php vulnerability
+27 -20
View File
@@ -1,31 +1,38 @@
FROM chill/base-image:8.4-edge
FROM chill/base-image:8.4-edge@sha256:01e0a9f8703d882224357f0d5a189b1392a9846391b75aa568dda8d8aef5e387
# copy directories
# 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 ./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
COPY --chown=www-data:www-data ./.env /var/www/app/.env
# import the manifest.json file
COPY ./public/build/manifest.json /var/www/app/public/build/manifest.json
COPY --chown=www-data:www-data ./public/build/manifest.json /var/www/app/public/build/manifest.json
ADD ./entrypoint.sh /.
COPY ./entrypoint.sh /entrypoint.sh
RUN chmod +x /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 PHP_FPM_USER=www-data \
PHP_FPM_GROUP=www-data \
COMPOSER_HOME=/var/www/app/.composer \
SESSION_LIFETIME=10800
ENV COMPOSER_HOME=/var/www/app/.composer
CMD [ "php-fpm" ]
+1 -1
View File
@@ -3,7 +3,7 @@ version: '3'
services:
###> symfony/mailer ###
mailer:
image: axllent/mailpit
image: axllent/mailpit@sha256:0790692be935ea4420d085694f7985b1f692ca6a8771ab0e0bd8ba75ac180498
ports:
- "1025"
- "8025"
+2 -2
View File
@@ -17,9 +17,9 @@ services:
###> chill-project/chill-bundles ###
redis:
image: redis
image: redis@sha256:4764ce37931aac77c0d033680b339b19b4a4a81772204d268947cb851212d0ac
relatorio:
image: registry.gitlab.com/champs-libres/public/relatorio-tornado/app:latest
image: registry.gitlab.com/champs-libres/public/relatorio-tornado/app:latest@sha256:2c4aa2f422c389d940adfd760b0856d237023d66cded0aa026b532b29192212e
###< chill-project/chill-bundles ###
volumes:
+1 -1
View File
@@ -1,4 +1,4 @@
FROM docker.elastic.co/logstash/logstash-oss:8.1.0-amd64
FROM docker.elastic.co/logstash/logstash-oss:8.1.0-amd64@sha256:f48c2f7db8b63572fa36db259c98c3894d89fb28d37f9546c26acfc0de525338
RUN \
bin/logstash-plugin install logstash-output-gelf \
+1 -1
View File
@@ -1,4 +1,4 @@
FROM nginx
FROM nginx@sha256:600f7cd45e27aa13e9304c834ab7c1b0ff39df85ee1dcc5087955455d77bc83b
COPY ./public /var/www/app/public
-19
View File
@@ -16,23 +16,6 @@ else
echo "we assume the database is ready";
fi
if [ $(id -u) = "0" ]; then
{ \
echo "[www]"; \
echo ""; \
echo "user=${PHP_FPM_USER}"; \
echo "group=${PHP_FPM_GROUP}"; \
} > /usr/local/etc/php-fpm.d/zz-user.conf
fi
{ \
echo ""; \
echo "session.save_handler = redis" ; \
echo "session.save_path = \"tcp://${REDIS_HOST}:${REDIS_PORT}?db=10\"" ; \
echo "session.gc_maxlifetime = ${SESSION_LIFETIME}" ; \
} >> /usr/local/etc/php/conf.d/custom.ini
if [ "${APP_ENV}" = "prod" ]; then
composer dump-env "${APP_ENV}"
chmod +r /var/www/app/.env.local.php
@@ -48,8 +31,6 @@ fi
if [ "${CLEAR_CACHE}" != "false" ]; then
#prepare cache
php /var/www/app/bin/console cache:clear --no-warmup
chgrp ${PHP_FPM_GROUP} /var/www/app/var/cache -R && chmod g+rw /var/www/app/var/cache -R
chgrp ${PHP_FPM_GROUP} /var/www/app/var/log -R && chmod g+rw /var/www/app/var/log -R
fi
exec "${@}"
+1 -1
View File
@@ -6,7 +6,7 @@
"devDependencies": {
"@symfony/ux-translator": "file:vendor/symfony/ux-translator/assets",
"bootstrap": "5.2.3",
"intl-messageformat": "^10.5.11"
"intl-messageformat": "10.7.18"
},
"scripts": {
"specs-build": "yaml-merge vendor/chill-project/chill-bundles/src/Bundle/ChillMainBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillPersonBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillCalendarBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillThirdPartyBundle/chill.api.specs.yaml vendor/chill-project/chill-bundles/src/Bundle/ChillDocStoreBundle/chill.api.specs.yaml> templates/api/specs.yaml",