如何通过环境变量替换 circle.yml deploy 命令中的令牌
How to replace token in circle.yml deploy command by environment variable
我在 circle.yml 中有部署部分,如下所示:
deployment:
default:
branch: [prototype, staging, production]
commands:
- docker tag clever chaliy/clever-$CIRCLE_BRANCH:latest
- docker push chaliy/clever-$CIRCLE_BRANCH:latest
- sed -i 's/clever-registry/clever-$CIRCLE_BRANCH/g' Dockerrun.aws.json
- cat Dockerrun.aws.json
- eb deploy clever-$CIRCLE_BRANCH --profile default --staged
我有 Dockerrun.aws.json
,我想用值 clever-
+ $CIRCLE_BRANCH
替换 clever-registry
。 $CIRCLE_BRANCH 的替换适用于前两个命令,但是无法替换 Dockerrun.aws.json 文件中的任何内容:(.
我也试过 ${CIRCLE_BRANCH} 语法,但效果是一样的
可能有另一种方法来替换文件中的标记?或者可能有其他方法可以替代 circle.yml?
中的命令
简单引号防止环境变量扩展。只需用双引号保护您的表达式(如果需要保护):
sed -i "s/clever-registry/clever-$CIRCLE_BRANCH/g" Dockerrun.aws.json
那行得通。在您的情况下,看到其他命令不受保护地工作,您也根本无法保护您的表达。只要 $CIRCLE_BRANCH
不是太奇特并且不包含有效的空格。
sed -i s/clever-registry/clever-$CIRCLE_BRANCH/g Dockerrun.aws.json
我在 circle.yml 中有部署部分,如下所示:
deployment:
default:
branch: [prototype, staging, production]
commands:
- docker tag clever chaliy/clever-$CIRCLE_BRANCH:latest
- docker push chaliy/clever-$CIRCLE_BRANCH:latest
- sed -i 's/clever-registry/clever-$CIRCLE_BRANCH/g' Dockerrun.aws.json
- cat Dockerrun.aws.json
- eb deploy clever-$CIRCLE_BRANCH --profile default --staged
我有 Dockerrun.aws.json
,我想用值 clever-
+ $CIRCLE_BRANCH
替换 clever-registry
。 $CIRCLE_BRANCH 的替换适用于前两个命令,但是无法替换 Dockerrun.aws.json 文件中的任何内容:(.
我也试过 ${CIRCLE_BRANCH} 语法,但效果是一样的
可能有另一种方法来替换文件中的标记?或者可能有其他方法可以替代 circle.yml?
中的命令简单引号防止环境变量扩展。只需用双引号保护您的表达式(如果需要保护):
sed -i "s/clever-registry/clever-$CIRCLE_BRANCH/g" Dockerrun.aws.json
那行得通。在您的情况下,看到其他命令不受保护地工作,您也根本无法保护您的表达。只要 $CIRCLE_BRANCH
不是太奇特并且不包含有效的空格。
sed -i s/clever-registry/clever-$CIRCLE_BRANCH/g Dockerrun.aws.json