从数据容器更新共享卷

时间:2017-03-16 12:10:54

标签: apache docker docker-compose docker-volume fpm

大家好,我想在这种情况下,我想通过重建包含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:

1 个答案:

答案 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,因此如果您想使用较新的功能,可能需要坚持重新创建音量。