Установите .travis.yml для автоматического развертывания образа докера

Я развертываю веб-приложение, написанное на 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 и освободить контейнер?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
0
743
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Есть несколько методов: Сценарий «логин героку» в среде CI. Думаю можно попробовать Method 2: Environment Variable.

Вот как вы можете войти, чтобы нажать на реестр heroku:

.travis.yml:

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

Другие вопросы по теме