首页 > 解决方案 > docker-compose 中的条件逻辑

问题描述

有人知道我是否可以在 docker-compose 文件中有条件地执行命令吗?

services:
  service_1:
  container_name: blah
  command: [[ -z '${SOME_ENV_VAR}' ]]; then <do something>; else exit 0; fi"

这是一个简化版本,但我希望其中一个容器仅在运行时传递 env var 时运行特定命令,docker-compose up否则为无操作。

例如,当我运行以下命令时,它应该根据命令的退出代码执行某些操作并退出

SOME_ENV_VAR=True docker-compose up -d

当我运行这个时,它应该在那个容器上退出 0

docker-compose up -d

出于某种原因,docker-compose 只是出错了./entrypoint.sh: line 13: exec: [[: not found. 做这样的事情的正确方法是什么?

标签: bashdockerdocker-composecontainers

解决方案


推荐阅读