[英]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 ,但我真的不確定這是否可以實現。
任何的想法?
這只是基於我最初評論的答案。
當基於同一個鏡像構建多個服務時,再次構建它通常是安全的。 在這種情況下, bundle
只能構建.
. 由於您只是再次構建web
,它將被緩存(從而快速構建)並具有相同的圖像 ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.