Я развертываю веб-приложение, написанное на python (flask) в контейнере Docker, в Heroku, используя Travis-CI. Как настроить travis.yml для автоматического развертывания образа на Heroku?
Я могу войти в Docker и автоматически отправить туда изображение.
Мой .travis.yml:
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:
$ ( 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 и освободить контейнер?
Есть несколько методов: Сценарий «логин героку» в среде CI. Думаю можно попробовать Method 2: Environment Variable
.
Вот как вы можете войти, чтобы нажать на реестр heroku:
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
следующим образом:
deploy:
provider: script
script:
heroku container:release web --app your-app-name