有一個Spring Boot應用程序,我們使用application.yml文件來存儲屬性。我得到了一個任務,讓用戶可以在啓動應用程序時覆蓋某些屬性。考慮到我們已經對我們的應用程序docker-compose文件進行了docker化,我認爲這是非常正確的地方。我發現了一個選項,它的實際工作,env_file:docker-compose覆蓋應用程序屬性
backend:
build:
context: backend
dockerfile: Dockerfile.backend
restart: always
ports:
- 3000:3000
env_file:
- backend/custom.env
volumes:
- ../m2_repo:/root/.m2/
- ../{APP_NAME}/data_sources:/backend/data_sources/
links:
- database
networks:
main:
aliases:
- backend
這完美地解決了我的任務,所有的鍵值對覆蓋現有的application.yml性能。但是,我有2個問題:
看來,在我的搬運工,撰寫文件中有多個服務,我需要指定不同的服務,這可能不是很方便單獨env_file。是否有可能爲整個docker-compose文件創建一個共同的env_file?
我知道,對於docker-compose運行命令,有一個選項-e,我可以把env變量的key = value對。碼頭工人有沒有類似的選擇?我的意思是爲了不使用env_file。
爲什麼1)中的問題?你所有的服務都需要相同的屬性嗎?如果使用一個常見的env_file,是否沒有重疊? –
這不是問題,而是我正在尋找一個選項。我的屬性不重疊,這實際上是我考慮有一個env_file而不是多個文件(每個服務一個) – Viacheslav