簡體   English   中英

Docker復制無效,內容未更新

[英]Docker copy not work, content not updated

我嘗試用php(symfony app)配置docker。

當我第一次構建容器時,symfony骨架應用程序出現在容器中,但是其他任何構建方法都不會更改容器內的任何內容。

Dockefile

FROM nginx:latest
RUN rm ./etc/nginx/conf.d/default.conf
COPY ./nginx/site.conf /etc/nginx/conf.d/site.conf
COPY . /var/www/html

CMD ["nginx", "-g", "daemon off;"]

碼頭工人組成

version: '3'
services:
  simple-app-symfony:
    image: simple-app-symfony
    build: .
    ports: 
      - "8080:80"
    links:
      - php 
    volumes:
      - data:/var/www/html
  php:
    image: php:7.1-fpm
    volumes:
      - data:/var/www/html
volumes:
  data: 

nginx / site.conf

server {
    listen 80;
    listen [::]:80;
    server_name ~.;

    root /var/www/html/public;
    index index.php index.html index.htm;

    #location ~ \.php$ {
    #   try_files $uri =404;
    #   fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #   fastcgi_pass php:9000;
    #   fastcgi_index index.php;
    #   include fastcgi_params;
    #   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    #   fastcgi_param PATH_INFO $fastcgi_path_info;
    #}

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/index\.php(/|$) {
        fastcgi_pass php:9000;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            fastcgi_param DOCUMENT_ROOT $realpath_root;
            internal;
        }


    location ~ \.php$ {
            return 404;
        }

}

我嘗試了docker-compose build --no-cache,docker build。 -t simple-app-symfony->沒有任何變化。 有什么想法嗎? 我認為問題出在卷上,因為我刪除了卷的分區,因此容器已更新。

但是我需要卷映射,因為在這種情況下,php需要訪問源代碼

您正在兩個沖突的步驟中更改/var/www/html的內容:

  1. Dockerfile中的COPY指令將構建上下文中的文件復制到容器的/var/www/html文件夾中。
  2. docker-compose中的卷安裝指令將卷安裝到同一文件夾,這使復制的文件不可見。

要解決此問題,請刪除Dockerfile中的COPY指令,然后在docker-compose中使用bind-mount將源代碼文件夾安裝到容器的/var/www/html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM