【问题标题】:Comment out docker-compose block with bash script用 bash 脚本注释掉 docker-compose 块
【发布时间】:2021-11-28 19:12:35
【问题描述】:

我正在使用 dockerized 应用程序进行本地开发项目。我的公司有 3 个不同的域,每个域都有一个包含 5 个服务的 docker-compose 文件。 (15 个项目)

如果我的项目的用户只想部署其域的 1 个服务或/和其他域项目的 2 个,我必须注释掉其他不想部署的 docker-compose 文件中的服务。

所以我的问题是如何使用 bash 脚本注释掉 docker-compose(Go) 文件块?我想根据上下文选择线条。例如在下面的示例中,我想注释掉 ap2-php-fpm 部分。我无法解决解决方案,因为有更多项目进入。我必须用 bash 脚本干预 go 语言脚本。

示范

version: '3.3'

services:
  app-php-fpm:
    container_name: app
    build:
      context: ${src}/
    volumes:
        - $path:path
    networks:
      general-nt:
        aliases:
        - app
    expose:
        - "9000"

  ap2-php-fpm:
    container_name: app
    build:
      context: ${src}/
    volumes:
        - $path:path
    networks:
      general-nt:
        aliases:
        - app
    expose:
        - "9000"

networks:
  general-nt:
    external: true

我想用 bash 脚本制作如下文件。

version: '3.3'

services:
  app-php-fpm:
    container_name: app
    build:
      context: ${src}/
    volumes:
        - $path:path
    networks:
      general-nt:
        aliases:
        - app
    expose:
        - "9000"

  # ap2-php-fpm:
  #   container_name: app
  #   build:
  #     context: ${src}/
  #   volumes:
  #       - $path:path
  #   networks:
  #     general-nt:
  #       aliases:
  #       - app
  #   expose:
  #       - "9000"

networks:
  general-nt:
    external: true

【问题讨论】:

  • 这个论坛有很多重复,但是如果需要就地编辑,这里printf '%s\n' '/ap2-php-fpm:/;/^$/-1s/^/# /' %p Q | ed -s file.txtQ 更改为w
  • 你的用户docker-compose up app-php-fpm,只指定他们想要运行的服务就够了吗?
  • 反之,如果你同时有新旧版本,可以分配不同的端口吗?如果 v2 成功,这也可能有助于切断实时流量。
  • @DavidMaze 如果我能做我想做的事,我会使用另一种方法。我的 bash 脚本生成命令。有很多项目,命令长度会很大
  • @DavidMaze 这不是我的问题答案,但我决定用你的方式解决。我正在从配置文件中读取项目服务名称。我添加了一个新值来检查它是否要部署。你能发布你的答案吗?我会接受的。

标签: bash docker go docker-compose


【解决方案1】:

出于许多实际目的,使用特定服务名称运行 docker-compose up 可能就足够了。如果你跑

docker-compose up -d app-php-fpm

它将在命令行上启动服务,以及任何它depends_on:,但不会启动其他任何东西。这将避免注释掉部分 YAML 文件的需要。否则,您可以正常与容器交互。

【讨论】:

    猜你喜欢
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2014-12-11
    • 2010-10-31
    • 1970-01-01
    相关资源
    最近更新 更多