0
我有一個docker-compose.yaml文件,然後是dockerfiles。現在,我不想在此docker-compose/dockerfile中編寫所有主機,端口和密碼。相反,我想將所有這些配置保存在不同的文件中。我知道,通過使用.env文件可以實現一半的需求,在那裏我可以保留我的環境變量,但是將所有配置保存在單個文件(main.cfg)中會很好,可以由其他組件使用。如何將配置導入到dockerfile。
我有一個docker-compose.yaml文件,然後是dockerfiles。現在,我不想在此docker-compose/dockerfile中編寫所有主機,端口和密碼。相反,我想將所有這些配置保存在不同的文件中。我知道,通過使用.env文件可以實現一半的需求,在那裏我可以保留我的環境變量,但是將所有配置保存在單個文件(main.cfg)中會很好,可以由其他組件使用。如何將配置導入到dockerfile。
您可以使用卷將文件或整個文件夾共享到泊塢窗服務。這裏是這股數據庫以泊塢窗一個MySQL的示例:
version: '3'
services:
mysql-database:
image: mysql
container_name: mysql-database
volumes:
- ./mysql/docker-entrypoint-initdb.d/:/docker-entrypoint-initdb.d
env_file:
- .env
ports:
- 3306:3306
的目錄結構如下:
BaseDirectory
|____docker-compose.yml
| mysql
| |____docker-entrypoint-initdb.d
| |____sqldb1.gz
| |____sqldb2.gz
在上面的例子中,所有的內部docker-entrypoint-initdb.d
從主機文件,共享與碼頭集裝箱,並且可以從集裝箱內訪問,也可以在/docker-entrypoint-initdb.d
。您也可以通過提供確切的文件名來掛載單個文件。例如:
volumes:
- ./mysql/docker-entrypoint-initdb.d/sqldb1.gz:/docker-entrypoint-initdb.d/sqldb1.gz
因爲我共享了一個數據庫,所以您可以共享一個配置文件,並將它放置在docker中想要的確切位置。
如果你真的想在主機上的配置文件被docker容器在運行時讀取,你可以創建一個包含該文件的卷 – Joel
@Joel:謝謝Joel。但那麼如何從配置文件中讀取它?作爲環境變量? – user208859