从数据容器更新共享卷
问题描述:
嗨,大家好我在这种情况下,我想通过重建包含COPY命令的数据容器在源代码中部署这些更改。但是,当我重建数据镜像并重新运行docker-compose时,我坚持使用旧代码,更新所有内容的唯一方法是删除webroot卷并重新创建它。从数据容器更新共享卷
错误在哪里?
server:
build: ./docker/apache
image: server:1.3.16
restart: always
links:
- fpm
ports:
- 80:80 # HTTP
- 443:443 # HTTPS
volumes:
- webroot:/var/www/html:ro
fpm:
build: ./docker/php
image: fpm:1.0
restart: always
links:
- database
volumes:
- webroot:/var/www/html
data:
build:
context: .
dockerfile: dataDockerFile
image: smanapp/data:1.0.0
volumes:
- webroot:/var/www/html
volumes:
webroot:
答
命名卷webroot
是为了坚持跨容器重新启动数据/重建。卷中的数据从映像更新的唯一时间是卷的创建时间,并且映像中的目录内容被复制。
看起来您的意思是使用volumes_from
这就是您如何获取容器来装载在data
上定义的卷。这是分享卷旨在取代的数据的原始“数据容器”方法。
version: "2.1"
services:
server:
image: busybox
volumes_from:
- data
command: ls -l /var/www/html
fpm:
image: busybox
volumes_from:
- data
command: ls -l /var/www/html
data:
build: .
image: dply/data
volumes:
- /var/www/html
请注意,这已经replaced in version 3 of the compose file所以你可能需要坚持,如果你想使用较新的功能重新创建卷。
不幸的是,没有办法在码头自动强制音量重新组合。我想我会改变我的撰写文件版本到2.1。 –