我有一个docker-compose.yaml文件,然后是dockerfiles。现在,我不想在这个docker-compose / dockerfile中写下所有的主机,端口,密码。相反,我想将所有这些配置保存在不同的文件中。我知道,一半的需求可以通过使用.env文件来实现,我可以保存我的环境变量,但是最好将所有配置保存在单个文件(main.cfg)中,这可以被其他组件使用。
答案 0 :(得分:0)
您可以使用卷将文件或整个文件夹共享到docker服务。以下是与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
在上面的示例中,来自主机的docker-entrypoint-initdb.d
内的所有文件都共享到docker容器,并且也可以在容器内部/docker-entrypoint-initdb.d
访问。您也可以通过提供确切的文件名来安装单个文件。例如:
volumes:
- ./mysql/docker-entrypoint-initdb.d/sqldb1.gz:/docker-entrypoint-initdb.d/sqldb1.gz
由于我共享了一个数据库,您可以共享一个配置文件并将其放在Docker中所需的确切位置。