shell 具有多个变量的脚本

shell script with multiple variables

我在不同的端口上 运行 安装了 nginx 的单独虚拟机上部署 docker 容器 我有三个环境 dev、qa 和 prod。

现在我有 2 个开发端口,2 个质量检查端口和 2 个生产端口。

docker run -p $PORT1:$PORT1 --env PORT:$PORT1 -d --name demoapp sample/demoapp

docker run -p $PORT2:$PORT2 --env PORT:$PORT2 -d --name demoapp sample/demoapp

我想通过在 jenkins 管道中提供 BRANCH = "DEV" 或 "QA" 或 "PROD" 来自动执行此操作。

我正在尝试将 for 循环与 if 结合使用。

也许是这样的

run_docker() {
  docker run -p ":" --env PORT:"" -d --name demoapp sample/demoapp
  docker run -p ":" --env PORT:"" -d --name demoapp sample/demoapp
}

case "$BRANCH" in
  DEV)  run_docker 8001 8002 ;;
  QA)   run_docker 4001 4002 ;;
  PROD) run_docker 81 82 ;;
  *) echo "unknown branch: $BRANCH" >&2; exit 1 ;;
esac