J'ai un noeud local gitlab et un noeud local drone.io. Le noeud drone.io s'exécute sur ubuntu. Le noeud gitlab utilise un certificat auto-signé. J'ai ajouté le certificat au noeud drone.io de la manière canonique ubuntu (cp cert.pem/usr/share/ca-certificates /; update-ca-certificates). Le drone est lancé avec -v/etc/ssl:/etc/ssl: ro. Je sais que le conteneur de drones connaît ce certificat, car il a résolu le problème de ne pas pouvoir se connecter parce que le problème de certificat dans oauth. Mais la construction donne une erreur dans git fetch avec "certificat SSL: certificat auto-signé"ajouter un certificat ca à drone.io construire un conteneur tel que git fetch peut l'utiliser?
Je suppose que drone démarre d'autres conteneurs pour la construction, et l'autre conteneur n'a pas le cert. Mais j'ai perdu la trace de ce qui se passe, et aucune idée sur la façon d'injecter mon CERT là.
Le script drone démarrage:
#!/bin/bash
set -x
docker kill drone
docker rm drone
docker run \
--volume /var/lib/drone:/var/lib/drone \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /etc/ssl:/etc/ssl:ro \
--env-file /etc/drone/dronerc \
--restart=always \
--publish=80:8000 \
--detach=true \
--name=drone \
drone/drone:0.4 \
-debug
/etc/drone/dronerc:
# in gitlab, as an administrator, go to /admin/applications
# add a new application, the redirect uri being https://drone.machine/authorize
REMOTE_DRIVER=gitlab
REMOTE_CONFIG=https://ci-poc.devel.balabit?client_id=b88f2a6faefd8d9a05eddd82c8327bda6a59858fc7772753f4e2c0e6a7cd96e4&client_secret=966f752d39f211ef6b79a8c079d2ff1226f6ccd772a239efab4f4e4fb5de67a9
DATABASE_DRIVER=sqlite3
DATABASE_CONFIG=/var/lib/drone/drone.sqlite
HTTP_PROXY=http://proxy.balabit:3128/
HTTPS_PROXY=http://proxy.balabit:3128/
un journal de construction:
[info] Pulling image plugins/drone-git:latest
Drone Git Plugin built from 8be7aa9
$ git init
Initialized empty Git repository in /drone/src/gitlab.private/mag/devsec/.git/
$ git remote add origin https://gitlab.private/mag/devsec.git
$ git fetch --no-tags --depth=50 origin +refs/heads/master:
fatal: unable to access 'https://gitlab.private/mag/devsec.git/': SSL certificate problem: self signed certificate
[info] build failed (exit code 1)
Cela ne semble pas fonctionner avec gitlab. J'ai essayé exactement ceci, et j'obtiens toujours l'erreur redoutée de «certificat de SSL: impossible d'obtenir le certificat local d'émetteur». Il semblerait que le plugin gitlab ignore 'skip_verify' – MattK
voir http://docs.drone.io/cloning/ pour plus d'exemples et de documentation mis à jour. Le skip_verify fonctionne mais doit être configuré en utilisant la dernière syntaxe. –