在 shell 的同一行中在 docker alpine 中设置和使用环境变量
Setting and using environment variable in docker alpine in the same line in shell
我想在alpine中设置和使用环境变量shell的方式如下
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
给我一个空字符串
在docker run
中使用-e
或--env
选项:
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
我只是想放置 powershell 命令来设置和读取环境变量:
PS C:\> $SELAM=$(docker run -t --rm alpine echo "naber") ; docker run -t --rm -e SELAM=$SELAM alpine /bin/sh -c "echo abi $SELAM";
我想在alpine中设置和使用环境变量shell的方式如下
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
给我一个空字符串
在docker run
中使用-e
或--env
选项:
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
我只是想放置 powershell 命令来设置和读取环境变量:
PS C:\> $SELAM=$(docker run -t --rm alpine echo "naber") ; docker run -t --rm -e SELAM=$SELAM alpine /bin/sh -c "echo abi $SELAM";