dockerfiles/drone/README.md

1.7 KiB

drone

Drone is a Continuous Integration platform built on Docker, written in Go.

github

#
# Github » Settings » Applications » Developer applications » Register new application
#
Application name: drone
Homepage URL: http://drone.easypi.info/
Application description: Drone is a Continuous Integration platform built on Docker, written in Go
Authorization callback URL: http://drone.easypi.info/authorize
Client ID: ... (generated by github)
Client Secret: ... (generated by github)

docker-compose.yml

drone:
  image: drone/drone:0.4
  ports:
    - "8000:8000"
  volumes:
    - ./drone:/var/lib/drone
    - /var/run/docker.sock:/var/run/docker.sock
  env_file: ./dronerc
  restart: always

dronerc

REMOTE_DRIVER=github
REMOTE_CONFIG=https://github.com?client_id=...&client_secret=...

nginx/sites-enabled/drone

server {
    listen 80;
    server_name drone.easypi.info;
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header Origin "";

        proxy_pass http://127.0.0.1:8000;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_buffering off;

        chunked_transfer_encoding off;
    }
}

up and running

# server
$ cd ~/fig/drone/
$ docker-compose up -d
$ docker-compose logs

# client
$ firefox http://drone.easypi.info/settings/profile
$ curl http://downloads.drone.io/drone-cli/drone_darwin_amd64.tar.gz | tar zx -C /usr/local/bin/
$ export DRONE_SERVER=http://drone.easypi.info/
$ export DRONE_TOKEN=...
$ drone help