如何将configuration导入到dockerfile。

我有一个docker-compose.yaml文件,然后是dockerfiles。 现在,我不想在此docker-compose / dockerfile中写入所有主机,端口,密码。 相反,我想保留所有这些configuration在一个不同的文件。 我知道,一半的需求可以通过使用.env文件来实现,在那里我可以保留我的环境variables,但是将所有configuration保存在一个单独的文件(main.cfg)中是很好的,这可以被其他组件。

您可以使用卷将文件或整个文件夹共享到泊坞窗服务。 以下是一个将数据库共享给docker的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 

在上面的示例中,host中docker-entrypoint-initdb.d内的所有文件共享到docker-entrypoint-initdb.d容器,并且可以从容器内部访问/docker-entrypoint-initdb.d 。 您也可以通过给出确切的文件名来装载单个文件。 例如:

 volumes: - ./mysql/docker-entrypoint-initdb.d/sqldb1.gz:/docker-entrypoint-initdb.d/sqldb1.gz 

由于我已经共享了一个数据库,类似的,你可以共享一个configuration文件,并把它放在docker里面你想要的位置。