接下来是我的 buildspec.yml
build:
commands:
- 'IMAGE_TAG=$(cat package.json | grep version | head -1 | awk -F: ''{ print $2 }'' | sed ''s/[",]//g'')'
- echo $IMAGE_TAG
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
这是相关构建的输出:
[Container] 2018/12/12 22:06:42 Running command IMAGE_TAG=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g')
[Container] 2018/12/12 22:06:42 Running command echo $IMAGE_TAG <<< GOOD
1.0.0 <<<< PERFECT
[Container] 2018/12/12 22:06:42 Running command docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
invalid argument "gotbot-air:" for t: invalid reference format
See 'docker build --help'. <<<<<< OH NO
[Container] 2018/12/12 22:06:42 Command did not exit successfully docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . exit status 125
正如您可以在标记行上清楚地看到的那样,当 echo'd 时,变量 $IMAGE_TAG 不知何故被正确设置为 1.0.0,但在我的构建脚本中执行的下一行中,它似乎已经消失了。
请注意我使用的是规范的 0.2 版本。
编辑:我的其他环境变量在顶部声明可能很重要env
或本机代码构建变量,可能是我在运行 docker 命令时获得了一些不同的执行环境?
检查 BuildSpec 文件的版本。将其更改为版本:0.2。
在版本 0.1 中,AWS CodeBuild 在构建环境中默认 shell 的单独实例中运行每个构建命令。在版本 0.2 中,AWS CodeBuild 在构建环境中默认 shell 的同一实例中运行所有构建命令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)