# #python #docker #gitlab #digital-ocean #gitlab-ci-runner
Вопрос:
Я пытаюсь реализовать CD для моего докеризованного приложения Django, используя Gitlab, с определенным бегуном в DigitalOcean droplet.
Вот мой .gitlab-ci.yml
image:
name: docker/compose:1.29.2
entrypoint: [""]
services:
- docker:dind
# - docker:18-dind
stages:
- build
- deploy
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
before_script:
- export IMAGE=$CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
- export WEB_IMAGE=$IMAGE/web:web
- export NGINX_IMAGE=$IMAGE/nginx:nginx
- apk add --no-cache openssh-client bash
- chmod x ./setup_env.sh
- bash ./setup_env.sh
- docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY
- mkdir -p ~/.ssh
- echo "${SSH_PRIVATE_KEY}" | tr -d 'r' > ~/.ssh/py_key
- cat ~/.ssh/py_key
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/py_key
- eval "$(ssh-agent -s)"
- ssh-add ~/.ssh/py_key
- ssh-keyscan -H 'gitlab.com' >> ~/.ssh/known_hosts
build:
stage: build
tags:
- pythonist
script:
- docker pull $IMAGE/web:web || true
- docker pull $IMAGE/nginx:nginx || true
- docker-compose -f docker-compose.ci.yml build
- docker push $IMAGE/web:web
- docker push $IMAGE/nginx:nginx
deploy:
stage: deploy
script:
- chmod x ./deploy.sh
- scp -o StrictHostKeyChecking=no -r ./.env ./docker-compose.prod.yml root@$DO_PUBLIC_IP_ADDRESS:/root/Pythonist.org/
- bash ./deploy.sh
only:
- master
И вот что gitlab-runner/config.toml
:
[[runners]]
name = "pythonist-on-gitlab"
url = "https://gitlab.com/ci"
token = "token"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[runners.docker]
tls_verify = false
image = "docker/compose:1.29.2"
privileged = flase
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
# volumes = ["/cache"]
shm_size = 0
#privileged = true
volumes = ["/cache","/var/run/docker.sock:/var/run/docker.sock"]
Когда я нажимаю на репозиторий, чтобы запустить сборку, вот ошибка, которую я получаю:
$ вход в докер-u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY
предупреждение! Использование —password через интерфейс командной строки небезопасно. Используйте —password-stdin.
ошибка при подключении: Сообщение http://docker:2375/v1.40/auth: наберите tcp: докер поиска на 67.207.67.3:53: такого хоста нет
Что здесь может быть не так?
Комментарии:
1. Похоже, что он пытается подключиться
docker
, но это не похоже на действительное имя хоста/домена. Должно ли это бытьhub.docker.com
или предполагается, что он должен подключаться к запущенному контейнеру под названием'docker'
?