前言
在部署 Docker 容器時,有時會需要使用特定的設定檔來設定容器,如果設定檔是固定的或很少更新,我們可以直接將設定檔放 Git 上,然後在部署容器時直接從 Git 上拉取設定檔。
Portainer CE 提供定時拉取或者經由 Webhook 觸發拉取功能,可以在更新 Git 後自動重新部署容器,使用 Git 來拉取設定檔,這樣可以保證容器的設定檔是最新的,並且可以方便地管理和追蹤設定檔的變更。
在 docker-compose.yml
中,我們可以使用 volumes
用格式 ./config.ini:/config/config.ini
來掛載設定檔。
可是在 Portainer CE 中,我們無法使用相對路徑來掛載設定檔,這個功能只在 Portainer EE 中才有,所以我們需要使用其他方法來實現相對路徑掛載。
解決方法
在 Portainer CE 中,部署使用了相對路徑的容器後,可以留意到容器的掛載路徑是 /data
,這個路徑是 Portainer CE 預設的掛載路徑,而且無法更改,我們需要將設定檔放在 /data
資料夾中檔。
可是由於 /data
並不存在於我們的主機中,所以我們需要在主機中建立一個 /data
資料夾。
Portainer CE 在 Git 取得 docker-compose.yml
(會同時拉取其他檔案,不侷限於設定檔案) 後,會儲存在 Docker Volume 中的 portainer_data
資料夾,所以我們可以將 /data
資料夾連結到 portainer_data
資料夾中的 _data
資料夾,來實現相對路徑掛載,解決找不到檔案的問題。
|
|
要留意是如果容器中修改了設定檔,這個修改是不會反映到 Git 中的,如果要更新設定檔,就要需要手動更新 Git 中的設定檔,然後重新部署容器。
使用例子
使用相對路徑卷的例子,在 Git 中新增 uploads.ini
來設定 Wordpress
容器中的 PHP 設定,提高上傳檔案的大小限制和提高記憶體限制。
|
|
在 Repo 根目錄新增 uploads.ini
檔案,內容如下:
|
|