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

如何将. env变量从docker-compose传递到entrypoint的脚本?

陆啸
2023-03-14

如何让bash脚本查看设置在.env和/或docker-compose-yaml中的env变量?

. env

VARIABLE_ENV=VALUE_ENV

docker-compose.yml

version: '3'

services:
  service:
    volumes:
      - ./entrypoint.sh:/entrypoint.sh
    environment:
      - VARIABLE_YML=VALUE_YML
    entrypoint: /entrypoint.sh

entrypoint.sh

#!/bin/bash

echo -e "${VARIABLE_ENV}"
echo -e "${VARIABLE_YML}"

共有1个答案

林曦之
2023-03-14

<代码>。envfile设置Compose可见的变量,就像您在包含shell中导出它们一样,但它不会自动设置容器中的变量。您可以告诉Compose传递特定变量:

environment:
  - VARIABLE_YML=VALUE_YML # explicitly set
  - VARIABLE_ENV           # from host environment or .env file

或者传递中设置的所有内容。env文件:

environment:
  - VARIABLE_YML=VALUE_YML # as above
env_file: .env

这两种形式之间的另一个重要区别是宿主环境变量还是< code >。env文件优先。如果您在< code>environment:中传递一个值,则主机环境变量会成功,但如果它在< code>env_file:中,则< code >。总是使用env。

VARIABLE_ENV=foo docker-compose up
 类似资料:
  • 我正在尝试运行一个带有env变量的docker映像。 但是它对我来说不管是使用env.list文件还是命令行都不起作用。

  • 问题内容: 我有一个bash脚本a.sh,其中有一个python脚本b.py。python脚本计算某些内容,我希望它返回一个值,该值稍后将在a.sh中使用。我知道我能做 在a.sh中: 在b.py中: 但这不是那么方便,因为我还在b.py中打印了其他消息 有什么更好的方法吗? 编辑: 我现在正在做的只是 这意味着我可以在b.py中打印很多东西,但是只有最后一行(假设它不包含“ \ n”,这是最后一

  • 我想对我的vuejs应用程序进行dockerize,并从docker-compose文件中传递环境变量。 我怀疑应用程序只在构建阶段获得环境变量,因此它不会从Docker-Compose获得环境变量。 Docker-Compose: 在构建阶段之后,有什么方法可以将环境变量传递给web应用程序吗?

  • 问题内容: 我有一个调用file.sql的shell脚本 我正在寻找一种将一些参数传递给我的file.sql的方法。 如果我没有将具有某个值的变量传递给sql脚本,则将不得不使用SELECT语句创建多个.sql文件,并且所有更改将只需要几个字即可。 我的shell脚本调用file.sql: 这就是我的file.sql的样子: 我可以修改我的shell脚本,以便它传递变量名吗? 即:模型=“建筑”,

  • 问题内容: 如何将值从javascript变量传递到razor变量,asp.net mvc razor视图引擎是否可能? 问题答案: 你不能 原因是他们不在同一时间“生活”。Razor变量是“服务器端变量”,在将页面发送到“客户端”后,它们不再存在。 当服务器收到视图请求时,它仅使用HTML,CSS和Javascript代码创建视图。没有C#代码,所有这些都被“翻译”为客户端语言。 当视图仍在服务