Как сделать docker-compose pull образа registry.gitlab (CI) через ssh?
Есть настройка gitlab-ci.yml следующего содержания блока deploy:
deploy:
# Lightweight image with ssh
image: kroniak/ssh-client
stage: deploy
when: manual
script:
# Set right chmod on SSH key file
- chmod 400 $DEVELOP_SSH_KEY
# Login to Gitlab Container registry
- ssh -o StrictHostKeyChecking=no -i $DEVELOP_SSH_KEY "${DEVELOP_SSH_USER}@${DEVELOP_HOST}" "docker login -u ${CI_DEPLOY_USER} -p ${CI_DEPLOY_PASSWORD} ${CI_REGISTRY}"
# Remove old containers and images if exists
- ssh -o StrictHostKeyChecking=no -i $DEVELOP_SSH_KEY "${DEVELOP_SSH_USER}@${DEVELOP_HOST}" "docker rm -f ${CI_PROJECT_NAME} || true"
- ssh -o StrictHostKeyChecking=no -i $DEVELOP_SSH_KEY "${DEVELOP_SSH_USER}@${DEVELOP_HOST}" "docker rmi \$(docker images -q ${DOCKER_REPO}) || true"
# Download and run new image
- echo "$CI_PROJECT_NAME" #AmoAnalytics
- echo "$DOCKER_IMAGE" #registry.gitlab.com/feature-compiler/amoanalytics:e6c8cefc
- ssh -o StrictHostKeyChecking=no -i $DEVELOP_SSH_KEY "${DEVELOP_SSH_USER}@${DEVELOP_HOST}"
docker-compose pull -p "$CI_PROJECT_NAME" -d "$DOCKER_IMAGE"
Все прекрасно до последнего пункта. Где нужно запулить образ с удаленной машины. Как это провернуть с docker-compose? Туплю и теряюсь.В мануале есть рабочая алетернатива для чистого docker, но это, насколько понимаю, не мой случай:
docker run
--name=$CI_PROJECT_NAME
-d $DOCKER_IMAGE
Настройки docker-compose.yml:
version: '3.7'
services:
web:
build: .
network_mode: 'host'
command: python /code/src/manage.py collecstatic
command: python /code/src/manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- 8000:8000
env_file:
- ./.env.dev