2016-01-12 134 views
1

我有一個碼頭工人,compose.yml其中包含的東西開始在CentOS7一個詹金斯服務器:

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"

是它仍然無法包含環境變量?我正在尋找最合適的解決方案。謝謝

回答

1

$(...)不是一個環境變量,它是command substituion

您需要使用環境變量來傳遞值。

DOCKER_PATH=$(which docker) docker-compose up 

泊塢窗,compose.yaml(片段)

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

或者,您可以逃脫與$$ $符號,在這裏看到:https://docs.docker.com/compose/compose-文件/#可變取代 – batjko