diff options
| author | kj_sh604 <43.splash@gmail.com> | 2026-03-01 20:04:42 -0500 |
|---|---|---|
| committer | kj_sh604 <43.splash@gmail.com> | 2026-03-01 20:04:42 -0500 |
| commit | 44d7aed73e6b7cf9c4027dc2baafd7407cf11a0b (patch) | |
| tree | ddf70401d82776343930bafdc9e5b95c532525a0 | |
| parent | fe040673f93a6828b62c85c162d059f62425ef3c (diff) | |
refactor: copy container contents into fresh volume
| -rw-r--r-- | Dockerfile | 13 | ||||
| -rw-r--r-- | docker-entrypoint.sh | 11 |
2 files changed, 20 insertions, 4 deletions
@@ -30,16 +30,21 @@ RUN a2enmod rewrite RUN echo "upload_max_filesize = 50M" > /usr/local/etc/php/conf.d/sent-web.ini \ && echo "post_max_size = 50M" >> /usr/local/etc/php/conf.d/sent-web.ini +# copy entrypoint script +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh +RUN chmod +x /usr/local/bin/docker-entrypoint.sh + # copy application COPY src/ /var/www/html/src/ -# ensure uploads directory exists with correct permissions -RUN mkdir -p /var/www/html/src/uploads \ - && chown -R www-data:www-data /var/www/html/src/uploads +# stash a seed copy of uploads so the entrypoint can populate a fresh volume +RUN mkdir -p /opt/uploads-seed \ + && cp -r /var/www/html/src/uploads/. /opt/uploads-seed/ \ + && chown -R www-data:www-data /var/www/html/src/uploads /opt/uploads-seed EXPOSE 3000 # tini as PID 1 ensures SIGTERM is properly forwarded to apache, # preventing the 'permission denied' error on docker stop -ENTRYPOINT ["/usr/bin/tini", "--"] +ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/docker-entrypoint.sh"] CMD ["apache2-foreground"]
\ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..8ffba10 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +if [ -z "$(ls -A /var/www/html/src/uploads 2>/dev/null)" ] && \ + [ -d /opt/uploads-seed ]; then + cp -r /opt/uploads-seed/. /var/www/html/src/uploads/ +fi + +chown -R www-data:www-data /var/www/html/src/uploads + +exec "$@"
\ No newline at end of file |
