docker - 有意删除覆盖 docker-compose 文件中的卷

标签 docker docker-compose

对于生产部署,我不想要共享卷。所以,我有一个覆盖文件,但这不会删除卷。

有没有办法删除覆盖文件中的共享卷?我想避免仅仅为了开发而重写,因为这看起来很笨重。

这是我的 docker-compose.yml:

version: '2'
# other services defined here
services:
  web:
    build:
      context: .
    # other configuration
    volumes:
      - .:${APP_DIR}

还有我的 docker-compose.prod.yml:

version: '2'
services:
  web:
    volumes: []
    restart: always

最佳答案

我假设你想使用 docker-compose up 来启动开发版本,并有第二个配置文件来扩展它以用于生产。

如果您想确保完全覆盖卷,请使用第三个配置文件 docker-compose.override.yml。将所有用于开发的卷定义放在那里。

docker-compose up默认情况下使用这个文件扩展基本配置。但是当您执行 docker-compose -f docker-compose.yml -f production.yml 之类的操作时,将不会加载 docker-compose.override.yml 文件,您将仅从生产文件中获取卷。

关于docker - 有意删除覆盖 docker-compose 文件中的卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43020286/

相关文章:

docker - 如何从文件读取docker-compose的配置

docker - 在Travis-CI中无法通过docker编译cpp:/usr/bin/ld:无法打开输出文件a.out:权限被拒绝

docker - 无法从 Web 界面访问 ArangoDB 服务

Hadoop 和 Cassandra 基准测试

docker-compose - 将现有卷附加到 docker 容器

Docker Compose Mac 错误 : Cannot start service zoo1: Mounts denied:

docker - 将本地Docker镜像推送到OpenShift在线

多个容器之间的 Docker 命名卷

docker - 在容器的每个构建中运行 composer install 和 npm install

ubuntu - Texlive 从 Sharelatex 图像从 2016 年降级到 2013 年