Как размещать статические файлы из образа php-fpm поверх образа nginx

#php #docker #nginx #docker-compose #static-files

#php #docker #nginx #docker-создать #статические файлы

Вопрос:

У меня есть веб-приложение, основанное на платформе Symfony.

У меня есть образ php-fpm со всеми файлами php и asset.

Теперь я хочу обслуживать файлы через контейнер nginx. php-часть проста. Но как я могу обслуживать статические файлы, включенные в образ php-fpm?

Я попытался создать том, который монтируется обоими контейнерами. Но после того, как docker скопировал файлы из образа в том после первого запуска, файлы больше не обновляются после обновления образа.

Я мог бы скопировать файлы после любого запуска контейнера из второго каталога в том, чтобы решить эту проблему, но я не хочу таких накладных расходов.

Есть ли у кого-нибудь хорошая идея, к кому я могу предоставить доступ к статическим файлам, чтобы их можно было обслуживать непосредственно контейнером nginx?

Мой docker-compose:

 version: '3'
services:
    nginx:
        image: nginx:1.15-alpine
        ports:
            - "80:80"
            - "443:443"
        volumes:
            - ./data/nginx:/etc/nginx/conf.d
            - ./data/certbot/conf:/etc/letsencrypt
            - ./data/certbot/www:/var/www/certbot
            - static-content:/var/www/app/web
        command: "/bin/sh -c 'while :; do sleep 6h amp; wait $${!}; nginx -s reload; done amp; nginx -g "daemon off;"'"

    php:
        image: pbnl/scotoobo-php:dev
        volumes:
            - static-content:/var/www/app/web
        environment:
            - database_host=db
volumes:
  static-content:
  

Мой Dockerfile

 FROM php:7.1-fpm
RUN usermod -u 1000 www-data
RUN groupmod -g 1000 www-data

ENV APP_ENV=prod
ENV SYMFONY_ENV=prod

# install system basics
# install some php extensions
# install composer

WORKDIR /var/www/app

# copy the source code
COPY composer.* ./
COPY app app
COPY bin bin
COPY src src
COPY web web-tmp

# set up correct permissions to run the next composer commands 
RUN mkdir var
RUN mkdir var/logs
RUN mkdir var/cache
RUN chown -R www-data:www-data /var/www/
RUN find /var/www/ -type d -exec chmod 775 "{}" ;
RUN find /var/www/ -type f -exec chmod 664 "{}" ;
RUN find /var/www -type d -exec chmod g s "{}" ;

# generate the autoloaders and run composer scripts
USER www-data
RUN composer install --no-dev --optimize-autoloader --no-interaction --no-scripts