【问题标题】:Docker Compose - Shorter Aliases for CommandsDocker Compose - 命令的更短别名
【发布时间】:2021-08-03 19:18:19
【问题描述】:

我有一个使用dockerdocker-composeproductiondevelopment 环境进行容器化的rails 应用程序。每个环境都有自己的.envdocker-compose.yml 文件(继承自一个普通的compose 文件,只重新定义了env-file 属性)。

所以,以development 模式构建应用程序:

docker-compose -f docker-compose.yml -f docker-compose.dev.yml --env-file .env.development build

还有一个类似的生产命令。我想创建一个别名来缩短此命令,因为它在尝试运行 rake 任务时变得特别烦人。我宁愿不修改~/.bashrc(这样其他合作者可以使用别名而无需遵循类似的流程)。

有比 shell 脚本更好的解决方案吗?

我应该说这真的不是问题,使用 app:dev build 之类的东西构建我的图像会很好 - 类似于使用 Node.js 完成的方式。

【问题讨论】:

  • 为什么不为该命令实现一个 rake 任务?
  • @Mr.我仍然需要在它前面加上 compose 文件和 env 文件
  • 仅提供环境名称作为 rake 命令的参数还不够,它会告诉您要加载哪些环境文件...
  • @Mr.你能分享一个例子吗?此外,这无助于缩短我的 docker-compose 命令

标签: ruby-on-rails docker docker-compose


【解决方案1】:

每个环境都有自己的.envdocker-compose.yml

如果你通过环境名称来区分每个环境文件,那么你可以使用如下的 rake 任务

namespace :docker do
  task :build, :env do |tsk, args|
    `docker-compose -f docker-compose.yml -f docker-compose.#{args.env}.yml --env-file .env.#{args.env} build`
  end
end

现在您只需运行rake docker:build[production]

请注意,我没有测试代码。

【讨论】:

    【解决方案2】:

    我决定利用@​​987654321@ 而不是rake 任务(如@Mr. 所建议):

    all: build.prod up.prod
    build.dev:
        docker-compose -f docker-compose.yml -f docker-compose.dev.yml --env-file .env.dev build
    build.prod:
        docker-compose -f docker-compose.yml -f docker-compose.prod.yml --env-file .env.prod build
    up.dev:
        docker-compose -f docker-compose.yml -f docker-compose.dev.yml --env-file .env.dev up
    up.prod:
        docker-compose -f docker-compose.yml -f docker-compose.prod.yml --env-file .env.prod up
    down:
        docker-compose down
    test:
        docker-compose --env-file .env.dev exec web rspec
    bash.dev:
        docker-compose --env-file .env.dev exec web sh
    bash.prod:
        docker-compose --env-file .env.prod exec web sh
    dev: build.dev up.dev
    

    它提供了我想要的功能

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-04
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多