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.
Debes registrar Drone con Github para obtener las llaves de cliente y secreta. El callback de autorización debe coincidir con <scheme>://<host>/authorize
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.