我有一个用于定义PHP应用程序的docker-复合-staging.yml文件。我已经定义了我的应用程序代码所在的数据卷容器(app),并使用volumes_from与其他容器共享。
码头工人
version: '2'
services:
nginx:
build:
context: ./
dockerfile: docker/staging/nginx/Dockerfile
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build:
context: ./
dockerfile: docker/staging/php/Dockerfile
expose:
- 9000
volumes_from:
- app
app:
build:
context: ./
dockerfile: docker/staging/app/Dockerfile
volumes:
- /var/www/html
entrypoint: /bin/bash这个特定的docker-复合-staging.yml用于将应用程序部署到云提供商(DigitalOcean),而应用程序容器的Dockerfile具有复制命令,将文件夹从本地目录复制到在配置中定义的卷。
docker/staging/app/Dockerfile:
FROM php:7.1-fpm
COPY ./public /var/www/html/public
COPY ./code /var/www/html/code这在我第一次构建和部署应用程序时起作用。在远程服务器上,我的公共和代码目录中的代码是存在的和正确的。我使用以下命令进行部署:
docker-compose -f docker-compose-staging.yml up -d但是,接下来我尝试将一个文件添加到本地公共目录中,然后运行以下命令来重新生成更新的代码:
docker-compose -f docker-compose-staging.yml build app此重构的输出表明复制命令成功:
Building app
Step 1 : FROM php:7.1-fpm
---> 6ed35665f88f
Step 2 : COPY ./public /var/www/html/public
---> 4df40d48e6a5
Removing intermediate container 7c0fbbb7f8b6
Step 3 : COPY ./code /var/www/html/code
---> 643d8745a479
Removing intermediate container cfb4f1a4f208
Successfully built 643d8745a479然后使用以下方法进行部署:
docker-compose -f docker-compose-staging.yml up -d具有以下输出:
Recreating docker_app_1
Recreating docker_php_1
Recreating docker_nginx_1但是,当我登录到远程容器时,文件更改就不存在了。
我是比较新的码头,所以我不确定我是否误解了这个过程的任何部分!如有任何指导,将不胜感激。
发布于 2017-01-06 21:16:33
您正在尝试使用新图像中的内容更新现有卷,但这不起作用。
https://docs.docker.com/engine/tutorials/dockervolumes/#/data-volumes
各国:
Changes to a data volume will not be included when you update an image.
发布于 2017-01-06 04:30:24
这是因为缓存。
跑,
docker-compose build --no-cache这将重建图像而不使用任何缓存。
然后,
docker-compose -f docker-compose-staging.yml up -d发布于 2021-02-09 22:25:26
我一直在挣扎,因为移民没有被发现,也没有完成。找到这个线程并注意到根本原因实际上是容器中没有更新文件。上面建议的力重建解决方案为我解决了这个问题,但我发现要记住什么时候去做和什么时候不去做是很麻烦的。例如,与Vue相关的文件似乎工作得很好,但是Django相关的文件却不能工作。
因此,我想为什么不尝试在复制之前调整Docker文件以清除以前的文件:
RUN rm -rf path/to/your/app
COPY . path/to/your/app很有魅力。现在,它是构建的一部分,您所需要的只是运行码头-重新编写-d -构建。文件是最新的,您可以运行make迁移并对容器进行迁移。
https://stackoverflow.com/questions/41498336
复制相似问题