无法执行命令以在 docker 容器中设置环境变量

穆斯塔法·加迪米

我已经看到以下链接在docker-compose文件中执行多个命令

它告诉我们如何在 docker-compose 文件(也在 docker 容器中)执行多个命令。

为了正确运行sburn/apache-atlas映像,我必须设置一些存在于/opt/apache-atlas-2.1.0/conf/atlas-env.sh目录中的环境变量

我尝试了以下 docker-compose.yml 文件:

version: "3.3"

services:
  atlas:
    image: sburn/apache-atlas
    container_name: atlas
    ports:
      - "21000:21000"
    volumes:
      - "./bash_script:/app"
    command: bash -c "
      source ./opt/apache-atlas-2.1.0/conf/atlas-env.sh
      && chmod 777 /app/import-hive.sh
      && /opt/apache-atlas-2.1.0/bin/atlas_start.py
      "

不幸的是,第一个命令(我的意思是source ./opt/apache-atlas-2.1.0/conf/atlas-env.sh)不起作用。它没有任何错误,但未设置 JAVA_HOME 等环境变量。

你如何检查变量没有设置?

  1. Docker exec -it atlas bash在终端中运行
  2. set在终端中运行它显示了所有的环境变量。
  3. 检查是否设置了环境变量。
阿尔曼·奥杜克哈尼

你的问题涉及很多东西,如果你能缩小范围,人们可以更好地提供帮助。以下是我调试它的建议:

bash -exc "
    echo home1=$JAVA_HOME
    source ./opt/apache-atlas-2.1.0/conf/atlas-env.sh
    echo home2=$JAVA_HOME
    chmod 777 /app/import-hive.sh
    echo home3=$JAVA_HOME
    /opt/apache-atlas-2.1.0/bin/atlas_start.py
"

如果JAVA_HOME从未设置,则.sh文件有问题,您可以修复该文件或手动设置它

export JAVA_ENV=/aaa/bbb/ccc

或者在你的 compose yaml 文件中定义它。


此外,您检查 env vars 的方式是错误的,运行Docker exec -it atlas bash 不会在与相同的 bash 中运行bash -c "source ./opt/apache-a..."

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Docker从命令或文件中设置环境变量

使用Gradle任务构建映像时无法在Docker容器内设置环境变量

从 Dockerfile CMD 调用 sh 文件时无法在 docker 容器内设置环境变量

在odoo 10 Windows中无法执行命令lessc

docker-compose,无法在docker容器中打印环境变量

Docker群在容器中执行命令

在 Makefile 中使用 Docker 容器中定义的环境变量来运行命令

Docker Compose-使用容器环境变量的命令

Docker守护程序(不是容器)无法读取环境变量

无法在ApplicationLoadBalancedFargateService中为容器设置环境变量

在终端中执行命令后,有时我无法执行其他命令

Docker在ubuntu中设置环境变量无法通过php getenv访问

无法访问 Docker 环境中的环境变量

在Docker中设置环境变量

如何从docker容器中的文件在dockerfile中设置系统范围的环境变量?

如何在现有的Docker容器中永久设置环境变量?

将环境变量设置为在 python 中创建的 docker 容器

Docker 文件中特定 RUN 命令的环境变量

无法执行命令window.document.execCommand(“ paste”)放在方括号中

Docker中的Laravel无法识别环境变量

无法执行Docker exec * ID * -it命令

Spotify Docker客户端无法在一项操作中启动容器并执行命令?

如何在一行中设置环境变量并执行命令(PowerShell)?

docker 容器中的环境变量 - 它是如何工作的?

在Docker容器中找不到环境变量

在Docker命令行上在容器内扩展环境变量

在docker-compose的命令键中使用容器的环境变量

docker compose环境变量未在Dockerfile中设置变量

无法在jenkinsfile中设置环境变量