drone のどっかのバージョンから server と runner が別イメージになった。
job "drone" { datacenters = ["luis"] type = "service" update { max_parallel = 1 min_healthy_time = "10s" healthy_deadline = "3m" progress_deadline = "10m" auto_revert = true canary = 0 } group "drone-server" { count = 1 task "drone-server" { driver = "docker" config { image = "drone/drone:1" port_map { port = 80 } volumes = [ "/var/lib/drone:/data" ] } env { "DRONE_GITHUB_SERVER" = "https://github.com" "DRONE_RPC_SECRET" = "" "DRONE_GITHUB_CLIENT_ID" = "" "DRONE_GITHUB_CLIENT_SECRET" = "" "DRONE_SERVER_HOST" = "" "DRONE_SERVER_PROTO" = "https" "DRONE_USER_CREATE" = "username:luis,machine:false,admin:true,token:" "DRONE_DATABASE_DRIVER" = "postgres" "DRONE_DATABASE_DATASOURCE" = "postgres://@arjuna.db.elephantsql.com:5432/cduzmalf?sslmode=disable" } resources { cpu = 100 memory = 128 network { mbits = 100 port "port"{} } } service { name = "drone-server" port = "port" tags = [ "traefik.tags=service", "traefik.frontend.rule=PathPrefixStrip:/drone", ] check { type = "tcp" port = "port" interval = "2s" timeout = "2s" } } } } group "drone-runner" { count = 3 task "drone-runner" { driver = "docker" config { image = "drone/drone-runner-docker:1" port_map { port = 3000 } volumes = [ "/var/run/docker.sock:/var/run/docker.sock" ] } env { "DRONE_RPC_PROTO" = "https" "DRONE_RPC_HOST" = "" "DRONE_RPC_SECRET" = "" "DRONE_RUNNER_CAPACITY" = "4" "DRONE_RUNNER_NAME" = "drone-runner" } resources { cpu = 100 memory = 2048 network { mbits = 100 port "port"{} } } service { name = "drone-runner" port = "port" check { type = "tcp" port = "port" interval = "2s" timeout = "2s" } } } } }
DB を PostgreSQL にして、各リポジトリの設定を保存しておいて
ステートレスになるようになってる。
PostgreSQL はここが無料で使えてオススメ
www.elephantsql.com