首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.travis.yml设置为自动部署docker镜像

将.travis.yml设置为自动部署docker镜像
EN

Stack Overflow用户
提问于 2019-04-10 23:11:12
回答 2查看 722关注 0票数 1

我正在使用Travis-CI将Docker容器中用python (flask)编写的web应用程序部署到Heroku。如何设置travis.yml自动将镜像部署到Heroku?

我可以登录到Docker并自动将图像推送到那里。

我的.travis.yml:

代码语言:javascript
复制
language: python
sudo: required

services:
  - docker

before_install:
  - docker build -t quarkus7/which-tram .

script:
  - docker run quarkus7/which-tram python test.py

after_success:
  - bash docker_hub_push
  - docker tag quarkus7/which-tram registry.heroku.com/$HEROKU_APP_NAME/web
  - docker push registry.heroku.com/$HEROKU_APP_NAME/web
  - ( echo "$HEROKU_USERNAME" echo "$HEROKU_PASSWORD" ) | heroku login -i
  - heroku container:login
  - heroku container:release web --app $HEROKU_APP_NAME

然而,我在Travis日志中得到一个错误:

代码语言:javascript
复制
$ ( echo "$HEROKU_USERNAME" echo "$HEROKU_PASSWORD" ) | heroku login -i
heroku: Enter your login credentials
Email: Password: sh: 1: read: Illegal option -s

你知道如何修改.travis.yml才能登录到Heroku并释放容器吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-11 10:01:45

有一些方法:Script "heroku login" in a CI environment。我想你可以试试Method 2: Environment Variable

票数 0
EN

Stack Overflow用户

发布于 2020-07-20 14:25:23

这是您登录以推送到heroku注册表的方式:

.travis.yml:

代码语言:javascript
复制
before_install:
- wget -qO- https://toolbelt.heroku.com/install.sh | sh #installed heroku CLI
- docker login -u "$HEROKU_USERNAME" --password=$(heroku auth:token) registry.heroku.com #logged in

$HEROKU_USERNAME是你的Heroku电子邮件地址。

然后,像这样使用heroku container:release进行部署:

代码语言:javascript
复制
deploy:
  provider: script
  script: 
    heroku container:release web --app your-app-name
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55615968

复制
相关文章

相似问题

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