繁体   English   中英

如何在 docker-compose.yml 中设置/获取项目名称

[英]How to set/get the project name in docker-compose.yml

我正在尝试设置一个 docker-compose 项目名称,或者能够在我的配置文件中引用它。 这些有可能吗?

我问的原因是我正在关注本教程,所以我最终得到了一个docker-container.yml文件,该文件读取

web:
  build: .
  command: bundle exec rails s -p 3000 -b 0.0.0.0
  ports:
    - "3000:3000"
  links:
    - db
  volumes: 
    - ".:/myapp"
  volumes_from:
    - bundle

db:
  image: mongo
  ports:
    - "27017"

bundle:
  image: myapp_web  # <--- this is actually {$project_name}_web being hard-coded
  command: echo Hello
  volumes:
    - /bundle

由于image: myapp_web配置,这仅在项目名称本身为myapp时才有效。 如果我正在处理名为myapp的目录或者我使用docker-compose -p myapp这将是正确的。

但是只要有人更改了目录名称,就会崩溃。 我想告诉COMPOSE_PROJECT_NAME -compose 使用自定义COMPOSE_PROJECT_NAME变量而不必传递-p fancyname选项。

我可以想象的另一种方法是在 yml 文件中传递某种image: {$COMPOSE_PROJECT_NAME }_web ,但我真的不确定这是否可以实现。

任何的想法?

在 Github 上有一个有关Docker compose 的相关问题,您可能想查看一下。

这只是基于我最初评论的答案。

当基于同一个镜像构建多个服务时,再次构建它通常是安全的。 在这种情况下, bundle只能构建. . 由于您只是再次构建web ,它将被缓存(从而快速构建)并具有相同的图像 ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM