首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头群服务环境变量在容器中不可见

码头群服务环境变量在容器中不可见
EN

Stack Overflow用户
提问于 2021-12-27 16:51:00
回答 1查看 302关注 0票数 3

我正在使用一个环境变量创建一个码头服务:

代码语言:javascript
复制
docker service create --env TEST=123 myservice

并验证环境变量是用

代码语言:javascript
复制
$ docker service inspect myservice
...
ContainerSpec:
 Env:           TEST=123
...

但是,环境变量不会出现在docker容器中。尤其是,在docker容器中运行的代码打印os.Environ(),在日志中我只看到标准环境变量:

代码语言:javascript
复制
$ docker service logs myservice
[HOSTNAME=48bcddab9204 SHLVL=1 HOME=/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/app]

因此,没有设置环境变量"TEST“。如何设置定义此环境变量的服务?

docker version的输出是

代码语言:javascript
复制
Client:
 Version:           20.10.12
 API version:       1.41
 Go version:        go1.17.5
 Git commit:        e91ed5707e
 Built:             Mon Dec 13 22:31:40 2021
 OS/Arch:           linux/amd64
 Context:           synology
 Experimental:      true

Server:
 Engine:
  Version:          20.10.3
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.15.13
  Git commit:       a3bc36f
  Built:            Thu Aug 19 07:11:25 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.4.3
  GitCommit:        ea3508454ff2268c32720eb4d2fc9816d6f75f88
 runc:
  Version:          v1.0.0-rc93
  GitCommit:        31cc25f16f5eba4d0f53e35374532873744f4b31
 docker-init:
  Version:          0.19.0
  GitCommit:        ed96d00
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-09 15:21:51

使用--env时,应该在环境中定义变量。如果不是这样的话,我们需要一个complete example来复制。下面是一个示例,说明它是有效的:

代码语言:javascript
复制
$ docker service create --name env-test --env TESTVAR=123 busybox tail -f /dev/null
nj9l6z57d9pviztyp9pglmv4r
overall progress: 1 out of 1 tasks 
1/1: running   [==================================================>] 
verify: Service converged 

$ docker ps -l
CONTAINER ID   IMAGE            COMMAND               CREATED          STATUS          PORTS     NAMES
697c1bf221b1   busybox:latest   "tail -f /dev/null"   20 seconds ago   Up 19 seconds             env-test.1.vlrepc8mqqvx7gysh2qsymja8

$ docker exec -it env-test.1.vlrepc8mqqvx7gysh2qsymja8 env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=697c1bf221b1
TERM=xterm
TESTVAR=123
HOME=/root
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70498247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档