首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用travis将多集装箱码头应用程序部署到heroku时遇到困难

使用travis将多集装箱码头应用程序部署到heroku时遇到困难
EN

Stack Overflow用户
提问于 2021-04-28 09:43:34
回答 1查看 112关注 0票数 0

所以我真的有几个问题。这是我的travis.yml文件,这是最新的运行https://travis-ci.com/github/harryyy27/allies-art-club

代码语言:javascript
运行
复制
sudo: required
language: generic

services:
  - docker

stages:
  - dev
  - prod

jobs:
  include:
    - stage: dev
      if: NOT(branch=master)
      scripts:
        - docker build -t harryyy27/allies_art_club/frontend -f ./client/Dockerfile.dev ./client
        - docker build -t harryyy27/allies_art_club/backend -f ./src/Dockerfile.dev ./src
        - docker run -e CI=true harryyy27/allies_art_club/frontend npm test
        - docker run -e CI=true harryyy27/allies_art_club/backend npm test
    - stage: prod
      if: branch=master
      before_deploy:
        - docker build -t harryyy27/aac-client ./client
        - docker tag harryyy27/aac-client registry.heroku.com/$HEROKU_APP/client
        - docker build -t harryyy27/aac-src ./src
        - docker tag harryyy27/aac-src registry.heroku.com/$HEROKU_APP/src
        - docker build -t harryyy27/aac-nginx ./nginx
        - docker tag harryyy27/aac-nginx registry.heroku.com/$HEROKU_APP/nginx
      # Log in to docker CLI
        - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_ID" --password-stdin
        - curl https://cli-assets.heroku.com/install.sh | sh
        - echo "$HEROKU_API" | docker login -u "$HEROKU_USERNAME" --password-stdin registry.heroku.com
      deploy:
        skip_cleanup: true
        provider: script
        script:
          docker ps -a;
          docker push harryyy27/aac-client;
          docker push registry.heroku.com/$HEROKU_APP/client;
          docker push harryyy27/aac-src;
          docker push registry.heroku.com/$HEROKU_APP/src;
          docker push harryyy27/aac-nginx;
          docker push registry.heroku.com/$HEROKU_APP/nginx;
          heroku container:release client src nginx --app $HEROKU_APP;

因为某种原因我不能部署到heroku。码头推送registry.heroku.com/$HEROKU_APP/container_name似乎与回显"$HEROKU_API“\\对接者登录-u "$HEROKU_USERNAME”--密码--stdin registry.heroku.com登录一起工作,但是当我去释放heroku容器时,在终端中显示“提供的无效凭据”,并告诉我要登录。是否有一种方式来释放这些集装箱使用码头CLI在特拉维斯?

如果没有,Heroku CLI能帮上忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-03 13:23:30

因此,我最终通过简单地将$HEROKU_API更改为$HEROKU_API_KEY来解决这个问题。这是一个环境变量,当出现时,它会自动将您登录到Heroku中,从而使您能够运行上传到您的码头容器到Heroku所需的脚本。这就是我最终得到的travis.yml

代码语言:javascript
运行
复制
sudo: required
language: generic

services:
  - docker

stages:
  - dev
  - prod

jobs:
  include:
    - stage: dev
      if: NOT(branch=master)
      scripts:
        - docker build -t harryyy27/allies_art_club/frontend -f ./client/Dockerfile.dev ./client
        - docker build -t harryyy27/allies_art_club/backend -f ./src/Dockerfile.dev ./src
        - docker run -e CI=true harryyy27/allies_art_club/frontend npm test
        - docker run -e CI=true harryyy27/allies_art_club/backend npm test
    - stage: prod
      if: branch=master
      before_deploy:
        - docker build -t harryyy27/aac-client ./client
        - docker tag harryyy27/aac-client registry.heroku.com/$HEROKU_APP/client
        - docker build -t harryyy27/aac-src ./src
        - docker tag harryyy27/aac-src registry.heroku.com/$HEROKU_APP/src
        - docker build -t harryyy27/aac-nginx ./nginx
        - docker tag harryyy27/aac-nginx registry.heroku.com/$HEROKU_APP/nginx
      # Log in to docker CLI
        - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_ID" --password-stdin
        - curl https://cli-assets.heroku.com/install.sh | sh
        - echo "$HEROKU_API_KEY" | docker login -u "$HEROKU_USERNAME" --password-stdin registry.heroku.com
        - docker push harryyy27/aac-client;
        - docker push registry.heroku.com/$HEROKU_APP/client;
        - docker push harryyy27/aac-src;
        - docker push registry.heroku.com/$HEROKU_APP/src;
        - docker push harryyy27/aac-nginx;
        - docker push registry.heroku.com/$HEROKU_APP/nginx;
      deploy:
        skip_cleanup: true
        provider: script
        script:
          heroku container:login;
          heroku container:release client src nginx --app $HEROKU_APP;

不过,我现在在Heroku中确实有错误:P

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67297727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档