在shell的同一行中在docker alpine中设置和使用环境变量

成本

我想以以下方式在高山外壳中设置和使用环境变量

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.ymlenvironment部分和双打印$$

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章