我有一个运行 alpine 镜像的 docker 容器。我想运行一个curl 命令,该命令利用存储在环境变量TEST_VAR 中的cookie。 我似乎不知道如何使用环境变量运行这个curl命令,我不断收到消息“未设置TEST_VAR变量。默认为空白字符串。”如果我查看alpine的变量容器能够加载,我可以看到 TEST_VAR 及其值,但似乎curl 命令无法使用/读取它..我该如何解决这个问题?
Docker 撰写文件:
services:
alpine_test:
image: alpine:latest
container_name: alpine_test
env_file:
- default.env
command: /bin/sh -c "apk add --no-cache curl && \
curl -b 'value=$TEST_VAR' https://website.com"
restart: "on-failure"
使用 default.env 中的变量:
TEST_VAR=thisisatestvariable
在 Dockerfile 中,要使用 .env 文件中的环境变量,您应该使用语法
${VARIABLE_NAME}
Docker Compose 将使用主机自己的环境处理 compose 文件中的所有变量。
$$ 是将 $ 传递到容器的必要转义:
services:
test:
image: alpine
environment:
FOO: "container"
command: [ "sh", "-c", "echo $FOO; echo $$FOO" ]
FOO=host docker compose run test