当前位置: 首页 > 知识库问答 >
问题:

Docker复制不工作,内容未更新

邓夕
2023-03-14

我尝试用php(symfony应用程序)配置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: 
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;
        }

}

共有1个答案

彭梓
2023-03-14

您正在通过两个相互冲突的步骤更改/var/www/html的内容:

  1. Dockerfile中的copy指令将生成上下文中的文件复制到容器的/var/www/html文件夹。
  2. docker-compose中的卷挂载指令将卷挂载到同一文件夹,这使得复制的文件不可见。

要解决此问题,请删除Dockerfile中的copy指令,并使用docker-compose中的bind-mount将源代码文件夹挂载到容器的/var/www/html

 类似资料:
  • 我对docker并不陌生,但我主要使用预构建的图像,我使用Docker-Compose连接这些图像。我需要一个超级基本的容器,它只读取日志文件并将内容流式传输到stdout,因为我在另一个容器中有权限问题。 以下是我的dockerfile: sheel脚本如下所示(目前--我正在测试) 正如您所看到的,我希望截断一些日志文件,然后连续地读取它。

  • 问题内容: 我正在Ubuntu 13.04(Raring Ringtail)之上运行最新版本的Docker: 但是当我启动容器时 我没有看到任何限制,并且我的内核启用了cgroups内存限制: 我在这里想念什么明显的东西? 问题答案: 将不会显示它,因为这是通过cgroups强制执行的。而是可以在主机(容器外部)上使用和cgroup内存进行检查: 要查看它的内存不足,可以运行一些将使用比分配的内存

  • 在尝试使用lambda表达式时,我遇到了一些Gradle构建错误: 错误:(41,100)错误:source 1.7中不支持lambda表达式(使用source 8或更高版本启用lambda表达式) 错误:任务“:app:CompileDebugJava”执行失败。编译失败;有关详细信息,请参阅编译器错误输出。 但在设置模块应用程序源/目标兼容性中,没有“1.8”这样的选项,只有Java1.6或1

  • 我部署了Jenkins helm的2.319.3版本,但我对集装箱码头工人有一个陌生的问题。我的Kubernetes版本:1.22.6(aks)。 错误: docker build-tregistry.azurecr.io/test: Developate-v81。无法连接到unix://var/run/的Docker守护进程docker.sock.docker守护进程正在运行吗? 测试另一个do

  • 我正在开发基于多个容器的node JS/Express的微服务。部署了不同docker组件的不同容器组。一个docker compose包含4个docker容器,而另一个docker compose包含3个docker容器。Docker compose为每个Docker compose创建了自动网络,例如BackendA_default和BackendB_default,因此每个后端都不能相互通信

  • 我有一个SVG图像,带有一些矩形,当鼠标悬停在上面时需要改变颜色。在JSFIDLE中,代码运行良好: https://jsfiddle.net/o8ufaL0h/ 但是在我的网页上,我无法使用hover或onmouseover来处理单个rect。但是,当我在html代码中为完整的img元素添加onmouseover时,它确实可以工作,所以我想这不是img元素的z索引问题。 我真的不知道为什么我不能