[英]How to set environment variable as docker image name on build
When using the file circle.yml
file to build a docker image I'm trying to pass an environment variable $CIRCLE_PROJECT_USERNAME
so that the file is less project specific. 当使用文件circle.yml
文件构建circle.yml
映像时,我试图传递环境变量$CIRCLE_PROJECT_USERNAME
以使该文件不特定于项目。 Unfortunately Docker build with the tag argument -t
fails with: 不幸的是,使用标记参数-t
Docker构建失败,并显示以下信息:
docker build -t CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:$CIRCLE_BRANCH . returned exit code 1
repository name component must match "[a-z0-9]+(?:[._-][a-z0-9]+)*" Action failed: docker build -t CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:$CIRCLE_BRANCH .
Circle.yml
file: Circle.yml
文件:
machine:
environment:
services:
- docker
dependencies:
override:
- docker info
- docker build -t CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:$CIRCLE_BRANCH .
test:
override:
- docker run -d $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:$CIRCLE_BRANCH
deployment:
hub:
branch: master
commands:
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASSWORD
- docker push $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:$CIRCLE_BRANCH
deployment:
hub:
branch: develop
commands:
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASSWORD
- docker push $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME:$CIRCLE_BRANCH
Should work, check if the env are actually set and only contain allowed characters: 应该可以使用,请检查是否实际设置了环境,并且只包含允许的字符:
[a-z0-9]+(?:[._-][a-z0-9]+)*
Edit: 编辑:
docker build -t CIRCLE_PROJECT_USERNAME ...
Maybe just missing a $
here? 也许只是在这里缺少$
? ;) ;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.