Развертывание частного образа докера для вычисления экземпляра движка с помощью GCP - PullRequest
0 голосов
/ 12 октября 2019
stages:
  - build
  - docker-push
  - deploy

cache:
  paths:
    - node_modules/

build:
  stage: build
  image: node:latest
  script:
    - yarn install
    - npm run build
  artifacts:
    paths:
      - dist/

docker:
  stage: docker-push
  image: docker:18.09.7

  services:
    - docker:18.09.7-dind

  script:
    - docker login --username=$DOCKER_USERNAME --password=$DOCKER_PASSWORD
    - docker tag $DOCKER_REPOSITORY:$CI_RUNNER_ID $DOCKER_REPOSITORY:latest
    - docker push $DOCKER_REPOSITORY

test:
  stage: deploy
  image: google/cloud-sdk:latest
  script:
    - echo $GCP_ACCESS_JSON > /tmp/$CI_PIPELINE_ID.json
    - gcloud auth activate-service-account $GCP_CE_PROJECT_EMAIL --key-file /tmp/$CI_PIPELINE_ID.json --project $GCP_PROJECT_ID

У меня есть .gitlab-ci.yml файл. Я успешно создал образ Docker и опубликовал его в частном репозитории Docker Hub. Я также создал GCP compute enigne instance, и, как вы можете видеть в файле gitlab-ci, я могу войти в этот экземпляр с помощью команды gcloud, теперь я хочу найти команду gcloud, которая даст возможность развернутьэто частное изображение концентратора докера для этого экземпляра вычислительного движка. Как я могу это сделать ? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать!

Ответы [ 3 ]

2 голосов
/ 12 октября 2019

Экземпляр виртуальной машины Compute Engine не запускает образы контейнеров.

1) Установите Docker и разверните образ вручную.

2) Разверните Compute Engine с ОС Container и разверните свой образ вручную.

3) Переключитесь на Реестр контейнеров Google и разверните образ с экземпляром виртуальной машины GCE, работающим под управлением Container OS.

2 голосов
/ 12 октября 2019

Если вы не привязаны к док-концентратору и вместо этого можете использовать Реестр контейнеров Google , существует простая команда gcloud для развертывания экземпляра с использованием , очень упрощенногооперационная система , предназначенная только для контейнеров:

 gcloud compute instances create-with-container [INSTANCE_NAME] \
     --container-image [DOCKER_IMAGE]

Однако она не поддерживает частные регистры концентраторов докеров, за исключением GCR. Вот руководство для отправки в GCR, если вы можете воспользоваться этим маршрутом.

В противном случае на самом деле не существует команды gcloud, которая делает то, что вы хотите, кроме как, возможно, путем настройкифайл сценария запуска или cloud-init , который содержит необходимые данные для аутентификации и извлечения из частного репозитория, но, безусловно, не автоматизирован.

0 голосов
/ 12 октября 2019

gcloud create instance: убедитесь, что докер доступен (если не установлен). Разверните вручную поток контейнера в gcloud
или gcloud, чтобы подключиться к реестру dockerhub и извлечь файл .yml, развернуть его

...