Jenkins 如何在Docker Compose中添加$(…)

Jenkins 如何在Docker Compose中添加$(…),jenkins,centos7,docker-compose,docker-volume,Jenkins,Centos7,Docker Compose,Docker Volume,我有一个docker-compose.yml,其中包含在CentOS7上启动jenkins服务器的内容: 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/libs

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

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"
但是我无法运行compose,因为我一直在
$(哪个docker):/usr/bin/docker:ro
上出错。我该如何解决这个问题

错误:
错误:服务“jenkins”中“volumes”选项的插值格式无效:“$(哪个docker):/usr/bin/docker:ro”

是否仍然不可能包含环境变量?我正在寻找最正确的解决方案。谢谢

$(…)
不是环境变量,而是环境变量

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

DOCKER_PATH=$(which docker) docker-compose up
docker-compose.yaml(代码段)


或者,您可以使用$$转义$符号,请参见此处:的可能重复项
- ${DOCKER_PATH}:/usr/bin/docker:ro