Configs 顶级元素
目录
配置允许服务调整其行为,而无需重新构建 Docker 镜像。与卷一样,配置作为文件挂载到容器的文件系统中。容器中挂载点的位置默认为/<config-name>
在 Linux 容器中,以及C:\<config-name>
在 Windows 容器中。
服务只有在由configs
属性中的services
top-level 元素。
默认情况下,配置:
- 由运行 container 命令的用户拥有,但可以被服务配置覆盖。
- 具有全局可读权限(模式 0444),除非服务配置为覆盖此权限。
顶级configs
declaration 定义或引用授予 Compose 应用程序中的服务的配置数据。配置的源是file
或external
.
file
:使用指定路径中的文件内容创建配置。environment
:配置内容是使用环境变量的值创建的。在 Docker Compose 版本 2.23.1 中引入。content
:内容是使用 inlined 值创建的。在 Docker Compose 版本 2.23.1 中引入。external
:如果设置为 true,则external
指定已创建此配置。Compose 不会 尝试创建它,如果它不存在,则会发生错误。name
:容器引擎中要查找的 config 对象的名称。此字段可用于 引用包含特殊字符的配置。名称按原样使用 ,并且不会使用项目名称来确定范围。
示例 1
<project_name>_http_config
在部署应用程序时创建,
通过注册httpd.conf
作为配置数据。
configs:
http_config:
file: ./httpd.conf
或者http_config
可以声明为 external。Compose 查找http_config
将配置数据暴露给相关服务。
configs:
http_config:
external: true
示例 2
<project_name>_app_config
在部署应用程序时创建,
通过将内联内容注册为配置数据。这意味着 Compose 在创建配置时会推断变量,从而允许您
根据服务配置调整内容:
configs:
app_config:
content: |
debug=${DEBUG}
spring.application.admin.enabled=${DEBUG}
spring.application.name=${COMPOSE_PROJECT_NAME}
示例 3
外部配置查找也可以通过指定name
.
以下内容
example 修改前一个参数,以使用参数HTTP_CONFIG_KEY
.实际的查找键在部署时通过
变量,但作为硬编码 ID 公开给容器http_config
.
configs:
http_config:
external: true
name: "${HTTP_CONFIG_KEY}"
如果external
设置为true
、除name
无关紧要。如果 Compose 检测到任何其他属性,则会拒绝 Compose 文件,因为它无效。