devops/pipline/deploy_docker-compose-context.yml

37 lines
1.2 KiB
YAML

.docker_login_registry: &docker-login-registry
- docker login -u $REGISTRY_USER -p $REGISTRY_PASSWORD $REGISTRY
.docker_login_stdin: &docker-login-stdin
- echo $REGISTRY_PASSWORD | docker login -u $REGISTRY_USER $REGISTRY --password-stdin
.docker_login_stdin_base64: &docker-login-stdin-base64
- echo $REGISTRY_PASSWORD | base64 -d | docker login -u $REGISTRY_USER $REGISTRY --password-stdin
.docker_context_create: &docker-context-create
- docker context create ${CI_PROJECT_NAME}-${ENV} --docker "host=tcp://${HOST},ca=${CA_FILE},cert=${CERT_FILE},key=${KEY_FILE}"
.docker_context_deploy: &docker-context-deploy
- DOCKER_CONTEXT=${CI_PROJECT_NAME}-${ENV} docker compose ${COMPOSE_FILES} pull
- DOCKER_CONTEXT=${CI_PROJECT_NAME}-${ENV} docker compose ${COMPOSE_FILES} up -d --force-recreate
.deploy_from_registry:
stage: deploy
image: ${DOCKER_IMAGE}
environment:
name: ${ENV}
variables:
DOCKER_HOST: ""
ENV: test
HOST:
CA_FILE:
CERT_FILE:
KEY_FILE:
REGISTRY: $DOCKER_REGISTRY
REGISTRY_USER: $EXUS_USER
REGISTRY_PASSWORD: $NEXUS_PASS_BASE64
COMPOSE_FILES: -f docker-compose.yml
script:
- env | sort
- *docker-login-stdin-base64
- *docker-context-create
- *docker-context-deploy