Instalación

Drone es una plataforma de despliegue continuo liviana y poderosa construida para contenedores. Drone está empaquetado y distribuido como una imagen de Docker y puede ser descargado desde Dockerhub.

docker pull drone/drone:0.8

Docker Compose

Esta sección provee instrucciones básicas para la instalación de Drone usando docker-compose. La configuración que mostraremos a continuación puede ser usada para iniciar un servidor de docker con un único agente.

version: '2'

services:
  drone-server:
    image: drone/drone:0.8


    ports:
      - 80:8000
      - 9000
    volumes:
      - /var/lib/drone:/var/lib/drone/
    restart: always
    environment:
      - DRONE_OPEN=true
      - DRONE_HOST=${DRONE_HOST}
      - DRONE_GITHUB=true
      - DRONE_GITHUB_CLIENT=${DRONE_GITHUB_CLIENT}
      - DRONE_GITHUB_SECRET=${DRONE_GITHUB_SECRET}
      - DRONE_SECRET=${DRONE_SECRET}

  drone-agent:
    image: drone/agent:0.8


    command: agent
    restart: always
    depends_on:
      - drone-server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_SERVER=drone-server:9000
      - DRONE_SECRET=${DRONE_SECRET}

Drone se integra con múltiples proveedores de control de versiones, que pueden ser configurados usando variables de entorno. Este ejemplo muestra la integración básica con Github.

services:
  drone-server:
    image: drone/drone:0.8


    environment:
      - DRONE_OPEN=true
      - DRONE_ORGS=dolores,dogpatch
      - DRONE_ADMIN=johnsmith,janedoe
+     - DRONE_GITHUB=true
+     - DRONE_GITHUB_CLIENT=${DRONE_GITHUB_CLIENT}
+     - DRONE_GITHUB_SECRET=${DRONE_GITHUB_SECRET}
      - DRONE_SECRET=${DRONE_SECRET}

Drone monta volúmenes desde la máquina anfitrión para almacenar la base de datos sqlite.

services:
  drone-server:
    image: drone/drone:0.8


    ports:
      - 80:8000
      - 9000
+   volumes:
+     - ./drone:/var/lib/drone/
    restart: always

Drone necesita saber su propia dirección. Por esta razón debes proveeder la dirección en el formato <scheme>://<hostname>.

services:
  drone-server:
    image: drone/drone:0.8


    environment:
      - DRONE_OPEN=true
+     - DRONE_HOST=${DRONE_HOST}
      - DRONE_GITHUB=true
      - DRONE_GITHUB_CLIENT=${DRONE_GITHUB_CLIENT}
      - DRONE_GITHUB_SECRET=${DRONE_GITHUB_SECRET}
      - DRONE_SECRET=${DRONE_SECRET}

El agente Drone requiere acceso al demonio Docker en la máquina anfitrión.

services:
  drone-agent:
    image: drone/drone:0.8


    command: agent
    restart: always
    depends_on: [ drone-server ]
+   volumes:
+     - /var/run/docker.sock:/var/run/docker.sock

Los agentes Drone requieren la dirección del servidor para comunicación agente-a-servidor.

services:
  drone-agent:
    image: drone/drone:0.8


    command: agent
    restart: always
    depends_on: [ drone-server ]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
+     - DRONE_SERVER=drone-server:9000
      - DRONE_SECRET=${DRONE_SECRET}

El servidor y los agentes Drone usan una clave secreta para autenticar su comunicación. Esto debería ser una cadena aleatoria de caracteres de tu elección y debería mantenerse en privado.

services:
  drone-server:
    image: drone/drone:0.8


    environment:
      - DRONE_OPEN=true
      - DRONE_HOST=${DRONE_HOST}
      - DRONE_GITHUB=true
      - DRONE_GITHUB_CLIENT=${DRONE_GITHUB_CLIENT}
      - DRONE_GITHUB_SECRET=${DRONE_GITHUB_SECRET}
+     - DRONE_SECRET=${DRONE_SECRET}
  drone-agent:
    image: drone/agent:0.8


    environment:
      - DRONE_SERVER=drone-server:9000
      - DRONE_DEBUG=true
+     - DRONE_SECRET=${DRONE_SECRET}

El registro a Drone está cerrado por defecto. Este ejemplo habilita el registro abierto para miembros aprovados por las organizaciones de Github.

services:
  drone-server:
    image: drone/drone:0.8


    environment:
+     - DRONE_OPEN=true
+     - DRONE_ORGS=dolores,dogpatch
      - DRONE_HOST=${DRONE_HOST}
      - DRONE_GITHUB=true
      - DRONE_GITHUB_CLIENT=${DRONE_GITHUB_CLIENT}
      - DRONE_GITHUB_SECRET=${DRONE_GITHUB_SECRET}
      - DRONE_SECRET=${DRONE_SECRET}

Los administradores de Drone pueden ser enumerados en tu configucación.

services:
  drone-server:
    image: drone/drone:0.8


    environment:
      - DRONE_OPEN=true
      - DRONE_ORGS=dolores,dogpatch
+     - DRONE_ADMIN=johnsmith,janedoe
      - DRONE_HOST=${DRONE_HOST}
      - DRONE_GITHUB=true
      - DRONE_GITHUB_CLIENT=${DRONE_GITHUB_CLIENT}
      - DRONE_GITHUB_SECRET=${DRONE_GITHUB_SECRET}
      - DRONE_SECRET=${DRONE_SECRET}

¿Hay algún error en esta página? Por favor, háganoslo saber o edite esta página.