gpt4 book ai didi

bash - Docker-Compose:Bash 命令替换

转载 作者:行者123 更新时间:2023-12-05 00:49:07 26 4
gpt4 key购买 nike

我在写 docker-compose.yml根据此处的博客文章,应该可以从容器内(Docker 中的 Docker)访问 Docker 的应用程序的文件:
https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

问题是我需要附加主机 Docker 二进制文件,但我不知道目标系统上 docker 的确切路径,在某些情况下可能是 /bin/docker , 其他 - /usr/local/bin/docker , 等等。

我想要跨平台的解决方案,只是把这样的东西

volumes:
- $(which docker):/bin/docker

进入 docker-compose.yml .

Docker-Compose 有可能吗?

最佳答案

挂载 Docker 二进制文件实际上是一个坏主意,因为较新的版本具有动态二进制文件,因此您还需要发现并挂载所有必需的库。

相反,正如 Oliver 所建议的那样,将 Docker 直接安装在容器内并将其指向主机上的套接字要容易得多。请注意,如果主机和容器中的 Docker 版本不同,则可能会遇到问题。

但是,要回答这个问题,您可以在较新版本的 Compose 中使用 shell 环境变量。在您的 Dockerfile您可以执行以下操作:

volumes:
- ${DOCKER_PATH}:/bin/docker

当你调用 compose 时:
DOCKER_PATH="$(which docker)" && docker-compose up

完整文档在这里 https://docs.docker.com/compose/compose-file/#variable-substitution

关于bash - Docker-Compose:Bash 命令替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34413230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com