抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

Docker Compose 容器环境变量 $PATH 设置

背景

需求:某些不带 bash 或者不支持/不方便对容器内环境进行更新的情况下更新环境变量。

Docker Compose 对环境变量的直接设置是支持的,但每个容器本身都带有不同的环境变量,在不改变原有情况下编辑往往都是在 .bashrc 添加 或者在当前终端执行 echo $PATH,那么对于部分不适用于直接编辑的容器,就需要更好的解决办法。

解决办法

首先得知道原有容器中的 PATH 环境变量内容,这点可以在容器的构建命令中查看,比如 portainer 支持在容器详情中直接查看:

如果容器本身支持 bash 登入,就直接登入执行 echo $PATH 输出即可获得环境变量,如果都不行,就得自己翻构建的 DockFile 去研究了,如果各方条件不满足又恰好容器不是基于常用 Linux ,那就有点难受了。

那么拿到环境变量后,在写 compose.yml 的时候就可以加上 PATH 的环境变量,并且可以用 : 的形式继续追加,比如我下面追加的 flutter 路径(当然这个路径是我挂载在容器中的,容器中本身并不存在)

environment: 
   - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/flutter/bin

然后重新创建容器即可使用刚刚自行添加的环境变量也不会影响容器本身的运行。

以上;

参考:

docker-compose update container PATH

https://docs.docker.com/compose/compose-file/compose-file-v3/#environment


本站由以下主机服务商提供服务支持:

0条评论

发表评论