【发布时间】:2018-08-24 15:38:40
【问题描述】:
我知道可以访问 docker api 并且以下命令可以正常工作:curl -s --unix-socket /var/run/docker.sock http:/v1.24/containers/$HOSTNAME/json | jq -r '.Image'
但是,我真的很想避免将 docker.sock 暴露给容器本身,因为它是 CI 构建的一部分。有没有其他方法可以在不暴露docker.sock 并向其发出curl 请求的情况下从容器本身中检索容器映像ID/哈希(即2acdef41a0c)?
可能类似于这里显示的 Docker, how to get container information from within the container ?
【问题讨论】:
-
如果你在 gitlab-ci 你有这些变量可用docs.gitlab.com/ce/ci/variables/README.html
-
如果您需要获取图像哈希,您可以在启动时使用 ENV 变量将其传递给 docker 容器
-
它通过 Docker Swarm 插件在 Jenkins 中运行。你会在
--env中传递什么? -
我的意思是,如果它是一个 shell 命令,你可以执行
docker images ...并解析哈希,但在我的情况下,我只有一个字段,我可以在其中手动添加--env未执行的参数通过 bash/shell AFAIK。 (github.com/jenkinsci/docker-swarm-plugin) -
我明白了,如果你在 CI 中,你可以在构建时将它传递给 ENV 文件
标签: docker jenkins docker-swarm