我已经看到以下链接在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 等环境变量。
你如何检查变量没有设置?
Docker exec -it atlas bash
在终端中运行。set
在终端中运行。它显示了所有的环境变量。你的问题涉及很多东西,如果你能缩小范围,人们可以更好地提供帮助。以下是我调试它的建议:
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] 删除。
我来说两句