docker-compose volumes:它们什么时候挂载到容器中?

docker-compose volumes: When are they mounted in the container?

我假设 docker-compose 卷是在容器服务启动之前安装的。是这样吗?

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

我可以看到在 docker-compose up 之后通过 shell 进入容器,目录被正确挂载;预期的文件在预期的位置。但是解析服务器实例不会触发挂载目录中的代码(我通过添加一些垃圾来检查它;没有错误)。

是否有可能在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

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

处理它的唯一方法是创建一个 Dockerfile,复制您想要的内容,然后将此映像用于您的容器。

Hth。

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

PARSE_SERVER_CLOUD_CODE_MAIN = /parse-server/cloud/

应该是

PARSE_SERVER_CLOUD=/parse-server/cloud/

用了1.5天追这个; fml.