Quiero implementar una pila docker en mi propio servidor. Escribí un archivo .gitlab-ci.yml que actualmente crea las imágenes en mi pila y las envía a mi registro de 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 Estoy luchando por encontrar una manera de ejecutar el comando de docker deploy en mi propio servidor con el archivo docker-compose.yml que he escrito, que extrae con éxito las imágenes de mi registro de gitlab. Me imagino que podría usar sshpass para ssh a mi servidor y luego copiar el archivo docker-compose.yml y ejecutar docker deploy deployment desde allí, pero no estoy seguro de cuál es la mejor manera de permitir que mi servidor acceda a las imágenes ahora ubicadas en mi registro 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) Esta es una sección de mi archivo 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¿Cómo puedo extraer las imágenes de mi registro de gitlab? ¿Es esta la forma preferida de crear una implementación de Docker en un servidor remoto, a través de gitlab ci?
También tuve esta dificultad recientemente, finalmente descubrí que la solución es simplemente insertar el enlace a la imagen en el registro privado como es mi caso con gitlab.
version: "3.2" services: octeditor: image: registry.gitlab.com/project-or-group/project-name/image-name:tag ports: - "3000:3000" networks: - front-tier