2017-09-08 3 views
0

Je souhaite utiliser drone.io et gogs afin d'avoir certaines fonctionnalités CI dans mon environnement."fatal: impossible à lire Nom d'utilisateur pour 'https: // XXX': aucun appareil ou adresse" avec drone.io et Gogs

La documentation de drone.io (http://docs.drone.io/) n'est pas à jour, et j'ai dû beaucoup creuser pour la lancer.

Mon fichier docker-compose.yml est le suivant:

version: '3' 

services: 

    drone-server: 
    image: drone/drone:latest 
    network_mode: "bridge" 
    volumes: 
     - "/docker/drone:/var/lib/drone/" 
    environment: 
     - "DRONE_OPEN=true" 
     - "DRONE_HOST=XXX" 
     - "DRONE_SECRET=XXX" 
     - "DRONE_GOGS=true" 
     - "DRONE_GOGS_URL=http://gogs:3000" 
     - "DRONE_GOGS_GIT_USERNAME=XXX" 
     - "DRONE_GOGS_GIT_PASSWORD=XXX" 
     - "DRONE_GOGS_PRIVATE_MODE=true" 
    external_links: 
     - "dedigogs_gogs_1:gogs" 

    drone-agent: 
    image: drone/agent:latest 
    network_mode: "bridge" 
    depends_on: 
     - drone-server 
    links: 
     - drone-server 
    volumes: 
     - "/var/run/docker.sock:/var/run/docker.sock" 
    environment: 
     - "DRONE_SERVER=drone-server:9000" 
     - "DRONE_HOST=XXX" 
     - "DRONE_SECRET=XXX" 
     - "DRONE_GOGS=true" 
     - "DRONE_GOGS_URL=http://gogs:3000" 
     - "DRONE_GOGS_GIT_USERNAME=XXX" 
     - "DRONE_GOGS_GIT_PASSWORD=XXX" 
     - "DRONE_GOGS_PRIVATE_MODE=true" 
    external_links: 
     - "dedigogs_gogs_1:gogs" 

(dedigogs_gogs_1 être mon gogs exemple docker)

Je peux me connecter à l'aide de mes dronegogs pouvoirs.

Je peux voir tous mes dépôts privés et les activer pour drone.io.

Cependant, lors de la construction d'un commettras, l'agent (je pense) ne peut pas cloner le dépôt:

+ git init 
Initialized empty Git repository in /drone/src/XXX/XXX/XXX/.git/ 
+ git remote add origin https://XXX/XXX/XXX.git 
+ git fetch --no-tags origin +refs/heads/master: 
fatal: could not read Username for 'https://XXX': No such device or address 
exit status 128 

J'ai essayé de jouer avec le .drone.yml (en ajoutant la section "clone", avec username, netrc.username, ...), J'ai également essayé de jouer avec la variable d'environnement, rien ne fonctionne, je ne peux pas faire drone authentifier pour le dépôt de clonage.

Une idée?

Répondre

1

Voici la chose, j'ai eu des problèmes similaires avec les gogs, pour une raison quelconque, le fichier .netrc ne correspond pas à l'URL utilisée pour cloner.

Essayez d'utiliser à la place l'URL complète que vous utilisez pour Gogs d'accès dans le navigateur au lieu du nom d'hôte interne dans le réseau docker

DRONE_GOGS_URL=http://myurl.to.gogs.com:3000 
DRONE_GOGS_URL=http://some-ip-address:3000 
+0

Wow! Je suis étonné. Merci beaucoup !!! – Blusky