jenkins - 如何在 Docker Compose 中添加 $(...)

标签 jenkins centos7 docker-compose docker-volume

我有一个 docker-compose.yml,其中包含在 CentOS7 上启动 jenkins-server 的内容:

jenkins:
  image: jenkins
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - $(which docker):/usr/bin/docker:ro
    - /usr/lib64/libsystemd-journal.so.0:/usr/lib/x86_64-linux-gnu/libsystemd-journal.so.0
    - /usr/lib64/libsystemd-id128.so.0:/usr/lib/x86_64-linux-gnu/libsystemd-id128.so.0
    - /usr/lib64/libdevmapper.so.1.02:/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02
    - /usr/lib64/libgcrypt.so.11:/usr/lib/x86_64-linux-gnu/libgcrypt.so.11
    - /usr/lib64/libdw.so.1:/usr/lib/x86_64-linux-gnu/libdw.so.1
  ports:
    - "8080:8080"

但是我无法运行撰写程序,因为我在 $(which docker):/usr/bin/docker:ro 上不断收到错误消息.我该如何解决这个问题?

错误:ERROR: Invalid interpolation format for "volumes" option in service "jenkins": "$(which docker):/usr/bin/docker:ro"
是否仍然无法包含环境变量?我正在寻找最正确的解决方案。谢谢

最佳答案

$(...)不是环境变量,它是 command substituion .

您需要使用环境变量来传递值。

DOCKER_PATH=$(which docker) docker-compose up

docker-compose.yaml(片段)
- ${DOCKER_PATH}:/usr/bin/docker:ro

关于jenkins - 如何在 Docker Compose 中添加 $(...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34741566/

相关文章:

Jenkins:在 shell 中访问 bitbucket 有效负载

java - 当 Jenkins 构建 Maven 项目时出现错误 : Could not find or load main class org. apache.maven.surefire.booter.ForkedBooter Jenkins

linux - 如何在命令中插入循环

linux - 如何使用 firewalld 记录对特定端口的连接拒绝?

linux - centos 7中Docker启动失败

go - 如何在 docker remote api 中创建容器? (go-dockerclient)

jenkins - 具有奇数资源编号的 Kubernetes Jenkins Slave

git - jenkins 在 Git 中从哪里获取电子邮件地址

docker - 如何通过Vagrantfile设置环境变量和/etc/hosts?

ubuntu - Docker 运行容器并修改环境设置