大家好,我想在这种情况下,我想通过重建包含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:
答案 0 :(得分:4)
命名卷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,因此如果您想使用较新的功能,可能需要坚持重新创建音量。