docker容器启动时,需要生效一下配置的环境变量,环境变量配置在镜像内部的~/.bash_profile文件内,但是每次启动时,都不能自动执行source,环境变量无法生效。

经多方调研,发现镜像启动时,自动执行的是~/.bashrc文件,所以,环境变量需要配置在该文件内,这样镜像启动时,可自动执行该文件,使环境变量生效。

具体可参考以下链接:

https://askubuntu.com/questions/121073/why-bash-profile-is-not-getting-sourced-when-opening-a-terminal

上面的方式,如果在docker stack方式启动镜像,并设置CMD 自动启动服务时,会因为

CMD设置的启动服务指令,在执行source之前,所以还是会报错。

此时,使用env

 environment:
      - LD_LIBRARY_PATH="/home/dmdbms/bin:$LD_LIBRARY_PATH"
      - DM_HOME="/home/dmdbms"
      - PATH=$PATH:/home/dmdbms/bin
      - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdbms/bin

即可

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐