2017-06-27 184 views
1

當我從Docker集線器中拉出圖像時。有時候,我想以多容器的方式運行圖像。所以我選擇使用docker-compose。例如,我將在replicated mode中運行zookeeper。我將新建一個名爲docker-compose.yml的文件,然後運行docker-compose並等待它完全初始化。我應該在哪裏放置docker-compose.yml

我的問題是什麼是適當的目錄我應該把docker-compose.yml文件放入?

+2

沒關係。一個好方法是創建一個項目目錄,在其中爲每個docker-compose項目創建一個新目錄。例如:'project/app-mysql /',你可以保存你的'docker-compose.yaml'(包括你的app + mysql的設置)。這就是我們如何使用它。 – lvthillo

+0

@ lvthillo,在這種情況下應該是你的git倉庫目錄?在'app-mysql /'(每個app-xxx一個)或者'project /'中的所有項目只有一個git倉庫? – Kwadz

+0

@Kwadz這個問題對我來說還不完全清楚,但我會將我的docker-compose.yml放在我的git repo的根目錄中,並且儘可能創建單獨的repo。如果這是不可能的,我會在子文件夾中使用一個git root,並在每個subrepo中放入一個docker-compose.yml – lvthillo

回答

1

我在問自己同樣的問題:在哪裏把我的docker-compose.yml文件?

我已經決定這樣做以下方式:

  • 一個回購爲docker-compose.yml與部署腳本一起(詹金斯管道在我的情況)。
  • 每個微服務的一個Repo以及一個Dockerfile及其構建邏輯(構建映像被推送到私有Docker註冊表)。

爲什麼?

  • docker-compose.yml描述了一種系統(微服務)的組合物以及它是如何展開。
  • 微服務應該獨立於系統基礎設施。
  • 可能有多個系統(不同的微服務組合)與第二個docker-compose.yml(和回購)。

但是,當然有合理的例外。 假設你正在部署一個定製的數據庫以及一個管理工具(例如自定義的mariadb和adminer),那麼大多數東西可能存在於一個存儲庫中。