docker-compose volumes:它们何时被装入容器?

时间:2018-02-20 19:02:11

标签: docker-compose lifecycle volumes

我曾假设在启动容器服务之前安装了docker-compose卷。是这种情况吗?

我问,因为我有一个docker-compose.yml,除其他外,它会启动一个解析服务器容器,并在容器中安装一个主机目录,其中包含服务应该运行的一些代码(Cloud Code)。

我可以通过shelling到容器中看到docker-compose up之后正确安装目录;预期的文件在预期的位置。但是parse-server实例并没有触发挂载目录中的代码(我通过添加一些垃圾来检查它;没有错误)。

在解析服务器服务启动后是否可以装入卷?

这是我的docker-compose.yml:

version: "3"

volumes:
  myappdbdata:
  myappconfigdata:

services:
  # MongoDB
  myappdb:
    image: mongo:3.0.8
    volumes:
      - myappdbdata:/data/db
      - myappconfigdata:/data/configdb

  # Parse Server
  myapp-parse-server:
    image: parseplatform/parse-server:2.7.2
    environment:
      - PARSE_SERVER_MASTER_KEY=someString
      - PARSE_SERVER_APPLICATION_ID=myapp
      - VERBOSE=1
      - PARSE_SERVER_DATABASE_URI=mongodb://myappdb:27017/dev
      - PARSE_SERVER_URL=http://myapp-parse-server:1337/parse
      - PARSE_SERVER_CLOUD_CODE_MAIN = /parse-server/cloud/
    depends_on:
      - myappdb
    ports:
      - 5000:1337
    volumes:
      - ./cloud:/parse-server/cloud

2 个答案:

答案 0 :(得分:1)

我不确定答案,因为我在文档中找不到这些信息。但是当我在容器真正运行之前需要它们时,我遇到了卷问题。例如,有时未加载配置文件。

处理它的唯一方法是创建一个Dockerfile,复制你想要的东西,并将这个图像用于你的容器。

H个。

答案 1 :(得分:0)

可悲的是,这里最大的问题是空白

PARSE_SERVER_CLOUD_CODE_MAIN = /parse-server/cloud/

应该是

PARSE_SERVER_CLOUD=/parse-server/cloud/

使用了1.5天追逐这个; FML。