简体   繁体   English

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

[英]How to add $(…) in Docker Compose

I have a docker-compose.yml which contains the stuff to start a jenkins-server on CentOS7: 我有一个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"

But I'm not able to run the compose because I keep getting an error on $(which docker):/usr/bin/docker:ro . 但是我无法运行撰写,因为我不断在$(which docker):/usr/bin/docker:ro上遇到错误。 How do I have to fix this? 我该如何解决?

Error: ERROR: Invalid interpolation format for "volumes" option in service "jenkins": "$(which docker):/usr/bin/docker:ro" 错误: ERROR: Invalid interpolation format for "volumes" option in service "jenkins": "$(which docker):/usr/bin/docker:ro"

Is it still not possible to include environment variables? 仍然不能包含环境变量吗? I'm searching for the most right solution. 我正在寻找最正确的解决方案。 Thanks 谢谢

$(...) is not an environment variable, it's command substituion . $(...)不是环境变量,它是命令替代

You need to use an environment variable to pass in the value. 您需要使用环境变量来传递值。

DOCKER_PATH=$(which docker) docker-compose up

docker-compose.yaml (snippet) docker-compose.yaml(代码段)

- ${DOCKER_PATH}:/usr/bin/docker:ro

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM