I’m starting with Drone CI, i tested already with Gitea, it worked well (though sometimes some jobs stayed in pending status for ever). Now i’m trying to use (a brand new instance of) Drone with GitLab.
This is my compose file (It’s deployed on Docker Swarm and proxied by Traefik, this same approach worked for Gitea)
# Stack name: drone
version: "3.4"
networks:
the-force:
external: true
back:
driver: overlay
driver_opts:
encrypted: ""
internal: true
attachable: true
volumes:
db:
driver: nfs
driver_opts:
share: "192.168.1.7:/drone/db"
services:
server:
image: drone/drone:0.8
networks:
- back
- the-force
ports:
- target: 9000
published: 9000
protocol: tcp
mode: ingress
environment:
- DRONE_DATABASE_DATASOURCE=postgres://[USER]:[REDACTED]@drone_data:5432/[DB]?sslmode=disable
- DRONE_DATABASE_DRIVER=postgres
- DRONE_ADMIN=[USER]
- DRONE_DEBUG=true
- DRONE_GITLAB=true
- DRONE_GITLAB_CLIENT=[REDACTED]
- DRONE_GITLAB_SECRET=[REDACTED]
- DRONE_GITLAB_SKIP_VERIFY=false
- DRONE_GITLAB_URL=https://gitlab.com
- DRONE_HOST=https://drone.domain.com
- DRONE_OPEN=true
- DRONE_SECRET=[REDACTED]
- GIN_MODE=release
deploy:
labels:
- "traefik.backend.loadbalancer.stickiness=true"
- "traefik.backend.loadbalancer.swarm=true"
- "traefik.backend=ci-server"
- "traefik.docker.network=the-force"
- "traefik.frontend.entrypoints=https,wss"
- "traefik.frontend.passHostHeader=true"
- "traefik.frontend.rule=Host:drone.domain.com"
- "traefik.port=8000"
placement:
constraints:
- node.labels.arch == amd64
restart_policy:
condition: any
update_config:
parallelism: 1
delay: 10s
data:
image: postgres:9-alpine
networks:
- back
volumes:
- data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=[DB]
- POSTGRES_PASSWORD=[REDACTED]
- POSTGRES_USER=[USER]
deploy:
placement:
constraints:
- node.labels.arch == amd64
restart_policy:
condition: any
update_config:
parallelism: 1
delay: 10s
After inspecting the service I found out GitLab returned a 502 error
Logs
$ docker service logs -f drone_server
drone_server.1.rhqey18x0ecp@NAS-Server | time="2018-03-20T05:34:55Z" level=debug msg="user feed: connection opened"
drone_server.1.rhqey18x0ecp@NAS-Server | time="2018-03-20T05:35:00Z" level=debug msg="sync error: ulm0: *Gitlab.buildAndExecRequest failed: <502> https://gitlab.com/api/v4/projects?membership=true&page=1&per_page=100"
drone_server.1.rhqey18x0ecp@NAS-Server | time="2018-03-20T05:35:00Z" level=info ip=10.255.0.2 latency=1m1.627969757s method=GET path="/api/user/feed" status=200 time="2018-03-20T05:35:00Z" user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
drone_server.1.rhqey18x0ecp@NAS-Server | time="2018-03-20T05:35:01Z" level=info ip=10.255.0.2 latency=5.120817ms method=GET path="/api/user/repos" status=200 time="2018-03-20T05:35:01Z" user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
drone_server.1.rhqey18x0ecp@NAS-Server | time="2018-03-20T05:35:05Z" level=debug msg="user feed: connection closed"
drone_server.1.rhqey18x0ecp@NAS-Server | time="2018-03-20T05:35:05Z" level=info ip=10.255.0.2 latency=9.988104634s method=GET path="/stream/events" status=200 time="2018-03-20T05:35:05Z" user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google Web Preview) Chrome/41.0.2272.118 Safari/537.36"
drone_server.1.rhqey18x0ecp@NAS-Server | time="2018-03-20T05:35:15Z" level=debug msg="sync begin: ulm0"
drone_server.1.rhqey18x0ecp@NAS-Server | time="2018-03-20T05:36:17Z" level=debug msg="sync error: ulm0: *Gitlab.buildAndExecRequest failed: <502> https://gitlab.com/api/v4/projects?membership=true&page=1&per_page=100"
drone_server.1.rhqey18x0ecp@NAS-Server | time="2018-03-20T05:36:17Z" level=info ip=10.255.0.2 latency=1m2.510378217s method=GET path="/api/user/repos" status=200 time="2018-03-20T05:36:17Z" user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
This is all i got so far
My feed is not showing any repositories at all (clicked the Synchronize button several time already and nothing)