我想以以下方式在高山外壳中设置和使用环境变量
docker run --rm -it alpine:latest /bin/sh -c MY_VAR=mytext; echo $MY_VAR
但是,它不会打印任何内容。如何正确执行此操作?
更多,特别是它在docker-compose这样的内部不起作用
version: "3.7"
services:
tree:
image: alpine:latest
entrypoint: ["/bin/ash", "-c", "MY_VAR=mytext; echo ${MY_VAR}"]
docker-compose run tree
给我一个空白字符串
在中使用-e
或--env
选项docker run
:
docker run --rm -it -e MY_VAR=mytext alpine:latest /bin/sh -c 'echo "$MY_VAR"'
mytext
引用容器所用的命令行很重要。
即使这样也应该打印变量的正确值MY_VAR
:
docker run --rm -it alpine:latest /bin/sh -c 'MY_VAR=mytext; echo "$MY_VAR"'
对于第二部分docker-compose
使用这种docker-compose.yml
带environment
部分和双打印$$
:
version: "3.7"
services:
tree:
environment:
- MY_VAR=mytext
image: alpine:latest
container_name: alpine
entrypoint:
- /bin/ash
- -c
- 'echo $$MY_VAR'
并使用以下命令检查输出:
docker-compose -f docker-compose.yml up
Recreating alpine ... done
Attaching to alpine
alpine | mytext
alpine exited with code 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句