在Docker撰写路径中使用多个环境变量

游击队

我有以下撰写文件:

services:
  myproject:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_HTTPS_PORT=44308
      - PROJECT_NAME=MyProject
    volumes:
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/Turma/${PROJECT_NAME}/Logs:/var/logs/${PROJECT_NAME}

在线上:

      - ${APPDATA}/Turma/${PROJECT_NAME}/Logs:/var/logs/${PROJECT_NAME}

它可以识别,${APPDATA}但是${PROJECT_NAME}使用文字字符串而不是环境变量值。

有没有办法使这项工作有效,以便在路径中使用实际的项目名称?

焦油101

据我所知,您以后无法在同一个compose文件中引用在compose文件中定义的env变量并对其进行解释。您可以对$ APPDATA进行定义,因为它是在主机环境中设置的,而不是在撰写文件中设置的。

我同时使用了env变量和.env文件(组成为2.3和3)进行了测试,但均无法正常工作。

我建议将撰写文件包装在运行脚本中,您可以在其中设置主机外壳程序中所需的变量,以便可以正确解释这些变量。如果您正在使用ansible,jenkins等标准工具进行部署,那么它们都可以为您设置变量。看起来可能如下所示:

#!/bin/bash
export PROJECT_NAME=foo
docker-compose up -d
unset PROJECT_NAME

尽管对于创建卷可能不起作用,但是如果您只需要变量在容器运行时执行某项操作(例如设置另一个环境变量),那么也可以将其放入入口点脚本中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Docker ENTRYPOINT中使用撰写环境变量

来自分类Dev

在文件路径中使用环境变量

来自分类Dev

Docker撰写共享环境变量

来自分类Dev

docker为命令撰写环境变量

来自分类Dev

在Paramiko的SFTP路径中使用环境变量

来自分类Dev

如何在docker run命令中使用环境变量?

来自分类Dev

如何在ENTRYPOINT数组中使用Docker环境变量?

来自分类Dev

如何在Docker Compose中使用环境变量

来自分类Dev

在Java中使用环境变量在Docker容器链接后

来自分类Dev

在docker compose中使用环境变量作为卷名

来自分类Dev

在Docker容器C#中使用系统环境变量

来自分类Dev

如何在docker args中使用环境变量

来自分类Dev

Docker撰写环境和路径

来自分类Dev

C ++,使用环境变量作为路径

来自分类Dev

在bash脚本中使用docker环境路径变量

来自分类Dev

在Dockerfile中使用环境变量

来自分类Dev

在talend的contextconfig中使用环境变量

来自分类Dev

Supervisord在命令中使用环境变量

来自分类Dev

在服务脚本中使用环境变量

来自分类Dev

在VSCode中使用环境变量

来自分类Dev

无法在xargs中使用环境变量

来自分类Dev

无法在 Strapi 中使用环境变量

来自分类Dev

在Boost Filesystem中使用环境变量

来自分类Dev

在Rakefile中使用环境变量的serverspec

来自分类Dev

在 Spring Boot 中使用环境变量

来自分类Dev

在 cloudformation 模板中使用环境变量

来自分类Dev

如何在环境变量或相对路径中使用替换指令

来自分类Dev

如何在python中使用环境变量编写正确的文件路径?

来自分类Dev

在C#中使用环境变量从文本文件读取文件路径