我們正在開發一個由mongodb,java後端和基於express-js的前端組成的小型項目。我們選擇了docker-compose
作爲除生產用途以外的所有部署工具,迄今爲止它已經相當不錯,只有一個例外。管理docker-compose覆蓋文件
目前,我們使用它:
- 運行本地開發集羣;
- 運行集成測試(有一些調整和額外的依賴);爲負載測試準備環境(更多調整);
- 在單獨的雲計算機上運行臨時/演示環境。
以處理每個環境,我們已經推導出一套泊塢窗,撰寫文件中的所有這些不同的調整:docker-compose.yml
,d-c.override.yml
,d-c.test.yml
,d-c.load.yml
和d-c.demo.yml
(docker-compose
與d-c
爲了簡潔代替)。
這讓我們使用enourmously長的命令行調用做任何事情,除了基本任務。例如:
docker-compose -f docker-compose.yml -f docker-compose.test.yml up -d --build
docker-compose -f docker-compose.yml -f docker-compose.test.yml exec test_container ./do_tests.sh
而且情況變得更糟。
有關提高,到目前爲止,我們已經有了幾個思路:
- 採用全泊塢窗,撰寫文件,而不是部分存起來打字 - 但應用結構的變化/引入額外的參數時,額外的維護;
- (前者的變體)使用
extends
用於服務並最小化複製粘貼(但增加了額外的複雜性); - 將所有那些冗長的命令存儲在
Makefile
(或bash腳本)中。使用方便,但感覺像地毯下的複雜性; - (前者的變體)開發docker-compose插件/自己的工具 - 可能在處理我們的需求時更加明確,但額外的維護和部署複雜性。
所有這些想法都有它們的缺點 - 我想知道什麼是適當的解決方案,以及已經存在的工具。
同樣在這裏,我們已將它們拆分成單獨的文件夾..保持簡單;)cd stage/docker-compose up :-) – opHASnoNAME