2017-09-22 3 views
1

J'essaie de passer de gitlab ci à drone.io. Mais je ne peux pas faire fonctionner DIND comme sur gitlab. Ci-dessus est comment je l'ai fait sur gitlab.Utiliser dind sur drone.io

variables: 
    NODE_ENV: 'test' 
    DOCKER_DRIVER: overlay 

image: gitlab/dind 

services: 
    - docker:dind 

cache: 
    untracked: true 

stages: 
    - test 

test: 
    stage: test 
    before_script: 
    - docker info 
    - docker-compose --version 
    - docker-compose pull 
    - docker-compose build 
    after_script: 
    - docker-compose down 
    script: 
    - docker-compose run --rm api yarn install 

Comment créer un fichier de drone équivalent?

Répondre

5

Vous pouvez utiliser la section services pour démarrer le démon docker.

pipeline: 
    ping: 
    image: docker 
    environment: 
     - DOCKER_HOST=unix:///drone/docker.sock 
    commands: 
     - sleep 10 # give docker enough time to initialize 
     - docker ps -a 

services: 
    docker: 
    image: docker:dind 
    privileged: true 
    command: [ '-H', 'unix:///drone/docker.sock' ] 

Notez que nous changeons l'emplacement par défaut de la prise de docker et d'écrire sur le volume de drone qui est partagé entre tous les conteneurs dans le pipeline:

command: [ '-H', 'unix:///drone/docker.sock' ] 

Notez également que nous devons exécuter le dind conteneur en mode privilégié. L'indicateur privilégié ne peut être utilisé que par des référentiels approuvés. Vous aurez donc besoin d'un administrateur utilisateur pour définir l'indicateur de confiance sur true pour votre référentiel dans l'interface utilisateur du drone.

privileged: true