简体   繁体   English

如何在构建时将环境变量设置为Docker映像名称

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM