對于我的所有影像,我都有一個latest用于生產和test測驗的標簽。我還有 2 個 docker-compose 檔案,它們的區別僅在于一個用于latest所有軟體包(nginx 除外),而另一個使用test. 有沒有辦法通過 CLI 變數來設定它,這樣我就不必一直手動保持這兩個檔案同步?
uj5u.com熱心網友回復:
我們可以使用環境變數來處理這個問題。
docker-compose.yml:
services:
...
my-service-one:
image: my/service-one:$TAG
...
my-service-two:
image: my/service-two:$TAG
...
然后我們可以添加一個包含內容的.env檔案(用于生產)
TAG=latest
和一個test.env包含內容的檔案(用于測驗)
TAG=test
當我們運行時docker compose up,.env默認使用檔案。如果我們想開始我們的測驗部署,我們可以運行docker compose --env-file test.env up.
uj5u.com熱心網友回復:
您可以簡單地為每個撰寫檔案運行這些命令
TAG=latest docker-compose -p latestapp -f compose-for-latest.yaml up -d
和
TAG=test docker-compose -p testapp -f compose-for-test.yaml up -d
當然,不要忘記使用${TAG}or (BOTH ARE VALID)在撰寫檔案中指定要使用 Tag 變數的位置$TAG
如果您是 LINUX 用戶,這應該可以正常作業。
如果您是 WINDOWS 用戶并且命令不起作用,您可以改用 GIT BASH。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385911.html
上一篇:SpringBoot:攔截器的preHandle在流端點上運行兩次
下一篇:Docker容器在不同網路通信
