0

我创建了一个带有一些自定义依赖项编译的开发容器。经过几个小时的构建,是时候运行我的第一个测试了。我的测试需要将主机磁盘上的文件(预训练模型和一些数据)加载到单独的文件夹中。使用 docker compose 或 docker 命令行等工具运行,我可以通过指定卷与容器共享主机文件。开发容器对代码文件夹执行相同的操作,但是如何为开发容器指定额外的卷。

4

1 回答 1

1

您可以为此使用Multi Compose 文件

假设您有一个docker-compose.yml文件,其中包含所有环境(dev、prod 等)的基本配置:

web:
  image: example/my_web_app:latest
  ports:
    - "1234:1234"

然后你有其他环境文件,比如docker-compose.env.yml根据环境添加或覆盖配置的位置。

在您的示例中,您可以在docker-compose.dev.yml其中添加开发容器所需的额外卷:

web:
  volumes:
    - 'path/to/host/folder:/path/to/container/folder'

在开发过程中,您将使用以下命令启动您的堆栈:

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d

注意:请务必检查在此处覆盖文件时如何处理属性,尤其是在您的情况下是

编辑:现在要在您的 docker-compose.yml 中使用多个文件,请devcontainer.json使用dockerComposeFile属性。在这里,您将删除“build”属性并提供 docker-compose 文件列表:

...
  "dockerComposeFile": [
    "path/to/docker-compose.yml",
    "path/to/docker-compose.dev.yml"
  ],
  "service": "web",
  "shutdownAction": "stopCompose",
...

/!\ 请注意,文件的顺序很重要,因为后面的文件会覆盖前面的文件。

于 2022-01-25T18:09:32.990 回答