Конвейер возникает «Не удалось разрешить хост», когда я использую Gogs и Drone для создания платформы CI / CD

#git #docker #centos #drone #gogs

#git #docker #centos #drone.io #gogs

Вопрос:

hosts Файл физического компьютера

 192.168.32.103 gogs.com
192.168.32.105 drone.com
 

Файл виртуальной машины Gogs /etc/hosts

 192.168.32.105 drone.com
 

Файл виртуальной машины Drone /etc/hosts

 192.168.32.103 gogs.com
 

Все следующие команды выполняются на виртуальной машине VMware.

Команда запуска Gogs Docker

 docker run -d 
  -p 8022:22 -p 80:3000 
  --add-host=drone.com:192.168.32.105 
  --name=gogs -v /srv/gogs-data:/data gogs/gogs:latest 
 

Команда запуска сервера Drone

 docker run 
  --volume=/var/lib/drone:/data 
  --add-host=gogs.com:192.168.32.103 
  --env=DRONE_AGENTS_ENABLED=true 
  --env=DRONE_GOGS_SERVER=http://gogs.com 
  --env=DRONE_RPC_SECRET=Hascalator 
  --env=DRONE_SERVER_HOST=drone.com 
  --env=DRONE_SERVER_PROTO=http 
  --publish=80:80 
  --publish=443:443 
  --restart=always 
  --detach=true 
  --name=drone-server 
  drone/drone:1
 

Команда запуска Docker для запуска Drone Runner

 docker run -d 
  --add-host=gogs.com:192.168.32.103 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -e DRONE_RPC_PROTO=http 
  -e DRONE_RPC_HOST=drone-server 
  -e DRONE_RPC_SECRET=Hascalator 
  -e DRONE_RUNNER_CAPACITY=2 
  -e DRONE_RUNNER_NAME=${HOSTNAME} 
  -p 3000:3000 
  --restart always 
  --name drone-runner-docker 
  --link drone-server:drone-server 
  drone/drone-runner-docker:1
 

.drone.yml содержимое файла

 kind: pipeline
name: Test Drone
type: docker
steps:
  - name: Print Hello World
    image: centos
    commands:
      - echo 'Hello, Drone'
  - name: Print Secrets
    image: centos
    environment:
      AppID: 
        from_secret: APP_ID
      AppSecret: 
        from_secret: APP_SECRET
    commands:
      - echo $AppID
      - echo $AppSecret
 

Когда я нажимаю origin master, в конвейере появляется сообщение «Не удалось разрешить узел».

 Initialized empty Git repository in /drone/src/.git/
  git fetch origin  refs/heads/master:
fatal: unable to access 'http://gogs.com/yokefellow/drone-practice.git/': Could not resolve host: gogs.com
 

Он доступен для пинга в этих двух контейнерах (drone-server, drone-runner-docker)

 [root@drone ~]# docker container exec -it  drone-server /bin/sh
/ # ping gogs.com
PING gogs.com (192.168.32.103): 56 data bytes
64 bytes from 192.168.32.103: seq=0 ttl=63 time=0.629 ms
64 bytes from 192.168.32.103: seq=1 ttl=63 time=0.637 ms
64 bytes from 192.168.32.103: seq=2 ttl=63 time=0.847 ms
64 bytes from 192.168.32.103: seq=3 ttl=63 time=0.451 ms
64 bytes from 192.168.32.103: seq=4 ttl=63 time=0.804 ms
^C
--- gogs.com ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.451/0.673/0.847 ms
 
 [root@drone ~]# docker container exec -it  drone-runner-docker /bin/sh
/ # ping gogs.com
PING gogs.com (192.168.32.103): 56 data bytes
64 bytes from 192.168.32.103: seq=0 ttl=63 time=0.759 ms
64 bytes from 192.168.32.103: seq=1 ttl=63 time=0.850 ms
64 bytes from 192.168.32.103: seq=2 ttl=63 time=0.648 ms
64 bytes from 192.168.32.103: seq=3 ttl=63 time=0.753 ms
64 bytes from 192.168.32.103: seq=4 ttl=63 time=0.753 ms
^C
--- gogs.com ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.648/0.752/0.850 ms
 

Комментарии:

1. Yokefellow. Недавно я также столкнулся с этой проблемой. Я вижу, что в документе плагина drone docker есть параметр add_host . [ docs.drone.io/plugins/popular/docker /] . Я попробовал этот параметр, но он не работает, возможно, мой .drone.yml файл неверен. Вы используете plugins/docker image для отправки своего изображения? Возможно, это режиссер для решения этой проблемы.