Я пытаюсь научиться создавать .gitlab-ci.yml
и действительно изо всех сил пытаюсь найти ресурсы, чтобы помочь мне. Я использую dind для создания docker образа в pu sh для docker хаба, затем пытаюсь войти в мой экземпляр AWS EC2, на котором также установлено docker, чтобы извлечь образ и запустить его выполняется.
Мне удалось создать образ с помощью GitLab и перенести его в концентратор docker, но теперь у меня возникла проблема при попытке войти в экземпляр EC2, чтобы получить образ.
Моя первая наивная попытка выглядит следующим образом:
#.gitlab-ci.yml
image: docker:18.09.7
variables:
DOCKER_REPO: myrepo
IMAGE_BASE_NAME: my-image-name
IMAGE: $DOCKER_REPO/$IMAGE_BASE_NAME:$CI_COMMIT_REF_SLUG
CONTAINER_NAME: my-container-name
services:
- docker:18.09.7-dind
before_script:
- docker login -u "$DOCKER_REGISTRY_USER" -p "$DOCKER_REGISTRY_PASSWORD"
after_script:
- docker logout
stages:
- build
- deploy
build:
stage: build
script:
- docker build . -t $IMAGE -f $PWD/staging.Dockerfile
- docker push $IMAGE
deploy:
stage: deploy
variables:
RELEASE_IMAGE: $DOCKER_REPO/$IMAGE_BASE_NAME:latest
script:
- docker pull $IMAGE
- docker tag $IMAGE $IMAGE
- docker push $IMAGE
- docker tag $IMAGE $RELEASE_IMAGE
- docker push $RELEASE_IMAGE
# So far so good - this is where it starts to go pear-shaped
- apt-get install sudo -y
- sudo apt install openssh-server -y
- ssh -i $AWS_KEY $AWS_URL "docker pull $RELEASE_IMAGE"
- ssh -i $AWS_KEY $AWS_URL "docker rm --force $CONTAINER_NAME"
- ssh -i $AWS_KEY $AWS_URL "docker run -p 3001:3001 -p 3002:3002 -w "/var/www/api" --name ${CONTAINER_NAME} ${IMAGE}"
Кажется, что в любой операционной системе, на которой построен образ docker, нет apt-get
, ssh
и куча других полезных Команды установлены. Я получаю следующую ошибку:
/ bin / sh: eval: строка 114: apt-get: не найдено
Может кто-нибудь помочь мне с командами, которые я нужно войти в мой экземпляр EC2 и вытащить и запустить образ в gitlab-ci.yml
, используя это docker: dind image? На какой операционной системе построен образ docker?