Iva*_*rin 1 service templates docker
我们可以在 Docker 撰写文件 YML 中使用模板吗?
例如,我想要部署带有复制的服务,并且我想要为容器设置名称,例如:-servicename-_-replicId-
简短的回答:是的,在其上下文中称为插值或变量替换: https ://docs.docker.com/compose/compose-file/#variable-substitution
更多细节:您可以从环境变量中插入变量值,但也可以提供默认值,以防环境不包含必要的变量。
从官方文档中获取的示例如下所示:
db:
image: "postgres:${POSTGRES_VERSION}"
Run Code Online (Sandbox Code Playgroud)
现在考虑命名容器的实际用例:容器名称源于变量key而不是变量value。因此,您必须使用该container_name属性来显式覆盖生成的容器名称。请参阅上面的示例:db将是生成的容器名称,但db不是属性值。因此,为了使您的用例发挥作用,您应该尝试以下操作:
db:
container_name: "app_${CONTAINER_NAME_SUFFIX}"
Run Code Online (Sandbox Code Playgroud)