簡體   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