Как я могу перезапустить приложение Docker для облачного литейного производства из частного репозитория? - PullRequest
0 голосов
/ 25 февраля 2019

Я развертываю докерские приложения в облачном литейном цехе, работающем в облаке swisscom ( веб-сайт ).Вот фрагмент моего сценария развертывания.

...
export CF_DOCKER_PASSWORD=$CI_REGISTRY_PASSWORD
cf push $APP_NAME -f "$MANIFEST_FILE" --vars-file $VARS_FILE

Пока все хорошо, приложение создается и запускается без проблем.

Waiting for app to start...

name:              app_name
requested state:   started
routes:            app_name.scapp.io
last uploaded:     Mon 25 Feb 11:55:01 UTC 2019
stack:             
docker image:      registry.gitlab.com/org_name/app_name:master

type:            web
instances:       1/1
memory usage:    192M
start command:   npm start
     state     since                  cpu     memory          disk           details
#0   running   2019-02-25T11:55:45Z   13.3%   95.7M of 192M   974.7M of 3G   

Но если приложение вылетает и CF пытаетсяпри перезапуске я получаю следующую ошибку.

2019-02-25 12:34:01 [CELL/0] OUT Cell 9f61c89b-5496-4f3a-a332-74084c0db365 creating container for instance 7f8762ce-d004-425e-729f-bfbd
2019-02-25 12:34:04 [CELL/0] ERR Cell 9f61c89b-5496-4f3a-a332-74084c0db365 failed to create container for instance 7f8762ce-d004-425e-729f-bfbd: running image plugin create: fetching image reference: creating image: unable to retrieve auth token: invalid username/password
2019-02-25 12:34:04 [CELL/0] ERR : exit status 1

manifest.yml

---
applications:
- name: app_name
  memory: 192M
  instances: 1
  disk_quota: 3G
  routes:
    app_name.scapp.io
  docker:
    image: registry.gitlab.com/org_name/app_name:master
    username: registry_user_here

Как получить CF для успешного перезапуска приложения?

1 Ответ

0 голосов
/ 25 февраля 2019

Я использую gitlab ci для развертывания в облачном литейном производстве.
Образы докера хранятся в реестре док-станции gitlab, и я аутентифицировался с паролем, предоставленным gitlab во время сборки ($CI_REGISTRY_PASSWORD).

Как оказалось, это всего лишь временный пароль, и он больше не действителен, когда облачный литейный завод пытается перезапустить приложение.Я использую токен личного доступа вместо предоставленного логина, и теперь он отлично работает.

...