当前位置: 首页 > 知识库问答 >
问题:

如何在docker.env文件中使用环境变量?

戚星腾
2023-03-14
LOCAL_COMPOSER_DIR=${LOCAL_CACHE}/composer
LOCAL_NPM_DIR=${LOCAL_CACHE}/npm
LOCAL_BOWER_DIR=${LOCAL_CACHE}/bower
version: '2'
services:
  composer:
    env_file: .env
    image: composer/composer
    volumes:
      - ./src:${APP_ROOT}
      - ${LOCAL_COMPOSER_DIR}:/composer
    working_dir: ${APP_ROOT}

当我用docker-compose启动服务时,运行composer instal。...它以以下错误停止:错误:命名卷“$local_cache”/composer“:/composer:rw”在服务“composer”中使用,但在卷部分中未找到声明。

我不是舒尔,但似乎。env文件不支持变量的使用。

共有1个答案

戴嘉珍
2023-03-14

是的。在.env文件中不能使用变量。突然但真实。实际用于docker compose版本1.8。

但是可以在docker-compose.yml文件中使用变量,例如

volumes:
  - ${LOCAL_COMPOSER_DIR}/${CACHE_DIR}:/composer/${CACHE_DIR}

这个答案给我们提供了另一种方法。

 类似资料:
  • 我希望能够在docker compose中使用env变量。yml,值在docker compose up时传入。这就是一个例子。 我今天用基本的docker run命令来做这件事,它包含在我自己的脚本中。有没有一种方法可以在没有任何bash包装器的情况下用compose实现它?

  • 问题内容: 我希望能够在docker-compose.yml中使用env变量,并在docker-compose时传入值。这就是例子。我今天使用基本的docker run命令来执行此操作,该命令包装在我自己的脚本中。没有任何这样的bash包装器,有没有办法通过compose实现它? 问题答案: 创建一个,这是您的with环境变量。 假设您的环境变量在文件“ env.sh”中 将以下代码放入sh文件中

  • 问题内容: 这是我第一次在Go中进行编码,而无需使用GOPATH。 我有一个档案。 我正在尝试通过Sendgrid发送电子邮件;我有一个包含我的SENDGRID_API_KEY的文件。 当尝试在我的文件中使用密钥时,该值并未被提取。 我也使用了’LookupEnv’,它返回false。 任何帮助,将不胜感激。 问题答案: 并且不检查文件。如果您的环境变量在文件中,则必须自己加载它们。或者使用为您执

  • 我希望能够在docker-compose.yml中使用env变量,这些变量的值是在时传入的。这就是例子。 我今天用基本的docker run命令来完成这个任务,它被包装在我自己的脚本中。有没有一种方法可以用compose来实现它,而不需要任何这样的bash包装器?

  • 出于某种原因,我不得不使用环境变量,而不是将系统属性传递给mvn命令。所以,我使用${env。PROFILE}作为属性名,pom.xml中的配置文件设置显示如下: 然后,我尝试激活配置文件到在线,但我失败了,命令行显示如下: 然后打开maven调试模式(-X),属性如下所示: 我们可以在上述属性列表中找到属性: “PROFILE”变量似乎是在envrionment中设置的。但是,“在线”配置文件未

  • 问题内容: 如何使用变量配置Web服务器(Linux服务器)? 如何设置使用? 问题答案: 是一些服务器和其他Java应用程序附加到执行命令的调用的标准环境变量。 例如在tomcat中,如果您定义,启动脚本将执行 如果您在Linux / OSX上运行,则可以在调用启动脚本之前通过执行以下操作来设置JAVA_OPTS: 只要打开控制台,此操作将一直持续。要使其更永久,可以将其添加到〜/ .profi