如何使 docker-compose 卷成为可选卷或使用标志禁用卷

vis*_*hal 6 docker docker-compose

我想在我的 docker-compose 文件中设置一个标志,如果我不需要我的数据库卷是否不会在容器外部持久化,但我仍然想要一个卷条目,如果我的数据库很小,那么我不希望它在容器外部持久化。

opH*_*AME 5

您可以使用两个 docker-compose.yml 文件。

  1. docker-compose.yml

  2. docker-compose.small.yml

覆盖 Number #2 中的卷部分并运行:

docker-compose -f docker-compose.yml -f docker-compose.small.yml up -d
Run Code Online (Sandbox Code Playgroud)

有关更多背景信息: https: //docs.docker.com/compose/extends/


thi*_*ign 5

卷不能是可选的,但有一个使用单个 docker-compose 文件的解决方法:

    volumes:
      - ${DUMMY_MOUNT:-.:/app}
Run Code Online (Sandbox Code Playgroud)

默认情况下,这将执行通常的安装:.:/app但您可以设置DUMMY_MOUNT变量来避免它。例如DUMMY_MOUNT=.:/dummy docker-compose up