Я хочу развернуть докерский стек на моем собственном сервере.Я написал файл .gitlab-ci.yml
, который в настоящее время создает изображения в моем стеке и помещает их в мой реестр gitlab:
build:
stage: build
image: docker:stable
services:
- docker:dind
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker info
script:
- docker build -t $DOCKER_IMAGE1_TAG -f dir1/Dockerfile ./dir1
- docker push $DOCKER_IMAGE1_TAG
- docker build -t $DOCKER_IMAGE2_TAG -f dir2/Dockerfile ./dir2
- docker push $DOCKER_IMAGE2_TAG
Я борюсь за способ запуска команды docker deploy
на моемсобственный сервер с файлом docker-compose.yml
, который я написал, который успешно извлекает изображения из моего реестра gitlab.Я полагаю, что могу использовать sshpass
до ssh
на моем сервере, а затем скопировать файл docker-compose.yml
и запустить оттуда docker deploy
, но я не уверен, как лучше всего разрешить моему серверу доступ к изображениямтеперь находится в моем реестре gitlab
:
# Need to ssh into the server, transfer over docker-stack file and run docker swarm deploy
deploy:
stage: deploy
environment:
name: production
image: trion/ng-cli-karma
before_script:
- apt-get update -qq && apt-get install -y -qq sshpass
- eval $(ssh-agent -s)
Это раздел моего docker-compse
файла:
version: "3.2"
services:
octeditor:
image: image # how to set this to the image in my container registry?
ports:
- "3000:3000"
networks:
- front-tier
deploy:
replicas: 1
update_config:
parallelism: 1
failure_action: rollback
placement:
constraints:
- 'node.role == manager'
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
Как я могу извлечь изображения из реестра gitlab?Является ли это предпочтительным способом создания развертывания докера на удаленном сервере через gitlab ci?