Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过nginx映像从php-fpm映像服务器静态文件_Php_Docker_Nginx_Docker Compose_Static Files - Fatal编程技术网

如何通过nginx映像从php-fpm映像服务器静态文件

如何通过nginx映像从php-fpm映像服务器静态文件,php,docker,nginx,docker-compose,static-files,Php,Docker,Nginx,Docker Compose,Static Files,我有一个基于Symfony框架的web应用程序 我有一个包含所有php和资产文件的php fpm图像 现在我想通过nginx容器提供文件。php部分很简单。但是如何为php fpm映像中包含的静态文件提供服务 我试图创建一个由两个容器装入的卷。但是在docker第一次启动后将文件从映像复制到卷中之后,在我更新映像后,文件不再更新 我可以在容器启动后将文件从第二个目录复制到卷中,以解决此问题,但我不希望出现这种开销 有谁知道谁可以共享静态文件,以便nginx容器可以直接为它们提供服务 我的码头工人

我有一个基于Symfony框架的web应用程序

我有一个包含所有php和资产文件的php fpm图像

现在我想通过nginx容器提供文件。php部分很简单。但是如何为php fpm映像中包含的静态文件提供服务

我试图创建一个由两个容器装入的卷。但是在docker第一次启动后将文件从映像复制到卷中之后,在我更新映像后,文件不再更新

我可以在容器启动后将文件从第二个目录复制到卷中,以解决此问题,但我不希望出现这种开销

有谁知道谁可以共享静态文件,以便nginx容器可以直接为它们提供服务

我的码头工人:

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 & wait $${!}; nginx -s reload; done & 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