Add Drone CI setup with Ngrok and Docker Compose
This commit is contained in:
parent
b4a5ec43a4
commit
e9a9704c56
|
@ -0,0 +1 @@
|
|||
.env
|
|
@ -0,0 +1,39 @@
|
|||
# Drone CI with Ngrok and Docker
|
||||
|
||||
Setting up [Drone CI for Github provider](https://docs.drone.io/server/provider/github/) with [Ngrok](https://ngrok.com/docs/getting-started/?os=linux) and Docker Compose
|
||||
|
||||
## Getting started
|
||||
|
||||
### Expose local 8080 port using Ngrok
|
||||
```
|
||||
$ export NGROK_AUTH_TOKEN=YOUR_NGROK_AUTH_TOKEN
|
||||
$ export NGROK_DOMAIN=YOUR_NGROK_DOMAIN
|
||||
|
||||
$ docker run --name ngrok_container --net=host -it -e NGROK_AUTHTOKEN=${NGROK_AUTH_TOKEN} ngrok/ngrok:latest http --domain=${NGROK_DOMAIN} 8080
|
||||
```
|
||||
|
||||
### Start Drone with Docker Compose
|
||||
```
|
||||
$ export DRONE_GITHUB_CLIENT_ID=YOUR_GITHUB_CLIENT_ID >> .env
|
||||
$ export DRONE_GITHUB_CLIENT_SECRET=YOUR_GITHUB_CLIENT_SECRET >> .env
|
||||
$ export DRONE_RPC_SECRET=YOUR_DRONE_RPC_SECRET >> .env
|
||||
$ export DRONE_SERVER_HOST=YOUR_DRONE_SERVER_HOST >> .env
|
||||
|
||||
$ docker compose up
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Running Drone CI in the Background
|
||||
if `.env` file is already set up
|
||||
|
||||
```bash
|
||||
$ chmod +x start.sh
|
||||
$ ./start.sh
|
||||
```
|
||||
|
||||
## Stop Drone CI and Ngrok
|
||||
```bash
|
||||
$ chmod +x stop.sh
|
||||
$ ./stop.sh
|
||||
```
|
|
@ -0,0 +1,32 @@
|
|||
version: '3'
|
||||
services:
|
||||
drone-server:
|
||||
image: drone/drone:2
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/lib/drone:/data
|
||||
environment:
|
||||
DRONE_GITHUB_CLIENT_ID: ${DRONE_GITHUB_CLIENT_ID}
|
||||
DRONE_GITHUB_CLIENT_SECRET: ${DRONE_GITHUB_CLIENT_SECRET}
|
||||
DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
|
||||
DRONE_SERVER_HOST: ${DRONE_SERVER_HOST}
|
||||
DRONE_SERVER_PROTO: http
|
||||
ports:
|
||||
- 8080:80
|
||||
- 443:443
|
||||
|
||||
drone-runner:
|
||||
image: drone/drone-runner-docker:1
|
||||
restart: always
|
||||
depends_on:
|
||||
- drone-server
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
environment:
|
||||
DRONE_RPC_PROTO: http
|
||||
DRONE_RPC_HOST: drone-server
|
||||
DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
|
||||
DRONE_RUNNER_CAPACITY: 2
|
||||
DRONE_RUNNER_NAME: my-first-runner
|
||||
ports:
|
||||
- 3000:3000
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Source environment variables from .env file
|
||||
set -a
|
||||
source .env
|
||||
set +a
|
||||
|
||||
# Expose local 8080 port using Ngrok
|
||||
docker run --name ngrok_container --net=host -e NGROK_AUTHTOKEN=${NGROK_AUTH_TOKEN} ngrok/ngrok:latest http --domain=${NGROK_DOMAIN} 8080 &
|
||||
|
||||
# Start Drone server and agent using Docker Compose
|
||||
docker compose up -d
|
Loading…
Reference in New Issue