Lea*_*ner 11 bash docker docker-compose
在我的 docker compose 中,我有以下命令:
command: bash -c 'while [[ "$(curl --connect-timeout 2 -s -o /dev/null -w ''%{http_code}'' https://mock-server:4000/readiness)" != "200" ]]; do echo ..; sleep 5; done; echo backend is up; npm start'
Run Code Online (Sandbox Code Playgroud)
等待模拟服务器启动,然后为后端运行启动命令:
backend:
build:
context: ./test
dockerfile: Dockerfile
command: bash -c 'while [[ "$(curl --connect-timeout 2 -s -o /dev/null -w ''%{http_code}'' https://mock-server:4000/readiness)" != "200" ]]; do echo ..; sleep 5; done; echo backend is up; npm start'
ports:
- "3015:3015"
depends_on:
- couchdb
- redis
- mock-server
user: root
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
ERROR: Invalid interpolation format for "command" option in service "backend": "bash -c 'while [[ "$(curl --connect-timeout 2 -s -o /dev/null -w ''%{http_code}'' https://uds-mock-server:4000/readiness)" != "200" ]]; do echo ..; sleep 5; done; echo backend is up;; npm start'"
Run Code Online (Sandbox Code Playgroud)
我看不出我的命令有什么问题。任何帮助表示赞赏
nel*_*aro 15
你需要逃避$与$$
command: bash -c 'while [[ "$(curl --connect-timeout 2 -s -o /dev/null -w ''%{http_code}'' https://mock-server:4000/readiness)" != "200" ]]; do echo ..; sleep 5; done; echo backend is up; npm start'
command: bash -c 'while [[ "$$(curl --connect-timeout 2 -s -o /dev/null -w ''%{http_code}'' https://mock-server:4000/readiness)" != "200" ]]; do echo ..; sleep 5; done; echo backend is up; npm start'
Run Code Online (Sandbox Code Playgroud)
那应该可以解决构建问题
| 归档时间: |
|
| 查看次数: |
3391 次 |
| 最近记录: |