From 6dfa049b3e0998183b77619194bc2651e81df220 Mon Sep 17 00:00:00 2001 From: mrjk Date: Fri, 19 Aug 2022 15:10:05 -0400 Subject: [PATCH] Add: consul, drone, gaia and vault stacks --- consul/docker-compose.expose.yml | 13 +++++++ consul/docker-compose.yml | 62 ++++++++++++++++++++++++++++++++ drone/docker-compose.debug.yml | 11 ++++++ drone/docker-compose.yml | 53 +++++++++++++++++++++++++++ gaia/docker-compose.expose.yml | 5 +++ gaia/docker-compose.yml | 16 +++++++++ vault/docker-compose.client.yml | 8 +++++ vault/docker-compose.expose.yml | 4 +++ vault/docker-compose.yml | 12 +++++++ 9 files changed, 184 insertions(+) create mode 100644 consul/docker-compose.expose.yml create mode 100644 consul/docker-compose.yml create mode 100644 drone/docker-compose.debug.yml create mode 100644 drone/docker-compose.yml create mode 100644 gaia/docker-compose.expose.yml create mode 100644 gaia/docker-compose.yml create mode 100644 vault/docker-compose.client.yml create mode 100644 vault/docker-compose.expose.yml create mode 100644 vault/docker-compose.yml diff --git a/consul/docker-compose.expose.yml b/consul/docker-compose.expose.yml new file mode 100644 index 0000000..6e4e029 --- /dev/null +++ b/consul/docker-compose.expose.yml @@ -0,0 +1,13 @@ +x-consul-bootstrap: &consul_server_ports + ports: + - "$app_expose_ip:8400:8400" + - "$app_expose_ip:8500:8500" + - "$app_expose_ip:8600:8600" + - "$app_expose_ip:8600:8600/udp" + + +services: + + consul: + <<: *consul_server_ports + diff --git a/consul/docker-compose.yml b/consul/docker-compose.yml new file mode 100644 index 0000000..7fa5972 --- /dev/null +++ b/consul/docker-compose.yml @@ -0,0 +1,62 @@ +--- +version: '3' + +# Default consul image +x-consul: &consul + #image: consul:latest + image: consul:1.10 + restart: unless-stopped + networks: + - default + environment: + CONSUL_BIND_INTERFACE: eth0 + +# Roles configuration +x-consul-agent: &consul_agent + <<: *consul + command: "agent -retry-join consul -client 0.0.0.0" + +x-consul-server: &consul_server + <<: *consul + command: "agent -server -retry-join consul -client 0.0.0.0" + +x-consul-bootstrap: &consul_server_bootstrap + <<: *consul_server + command: "agent -server -bootstrap-expect 3 -ui -client 0.0.0.0" + #ports: + # - "8400:8400" + # - "8500:8500" + # - "8600:8600" + # - "8600:8600/udp" + +networks: + default: + +services: + + consul: + <<: *consul_server_bootstrap + hostname: consul + volumes: + - $app_data_dir/server1:/consul/data + + consul-server-1: + <<: *consul_server + hostname: consul-server-1 + + consul-server-2: + <<: *consul_server + hostname: consul-server-2 + + consul-agent: + <<: *consul_agent + hostname: consul-agent-0 + +# consul-agent-1: +# <<: *consul_agent +# hostname: consul-agent-1 +# +# consul-agent-2: +# <<: *consul_agent +# hostname: consul-agent-2 + diff --git a/drone/docker-compose.debug.yml b/drone/docker-compose.debug.yml new file mode 100644 index 0000000..f8b23ed --- /dev/null +++ b/drone/docker-compose.debug.yml @@ -0,0 +1,11 @@ +services: + drone: + environment: + - DRONE_DEBUG=true + - DRONE_TRACE=false + + drone-runner: + environment: + - DRONE_DEBUG=true + - DRONE_TRACE=false + diff --git a/drone/docker-compose.yml b/drone/docker-compose.yml new file mode 100644 index 0000000..24f9aa7 --- /dev/null +++ b/drone/docker-compose.yml @@ -0,0 +1,53 @@ +version: '3.6' + +networks: + default: + build: + +services: + drone: + image: drone/drone:${app_image_version:-2.12} + environment: + + - DRONE_SERVER_PROTO=https + - DRONE_SERVER_HOST=$app_fqdn + - DRONE_RPC_SECRET=$app_secret_token + - DRONE_TLS_AUTOCERT=false + + - DRONE_GIT_ALWAYS_AUTH=${DRONE_GIT_ALWAYS_AUTH:-false} # Set to true to access private repos + - DRONE_USER_CREATE=$DRONE_USER_CREATE + # DEPRECATED- DRONE_ADMIN=$DRONE_ADMIN # Depreacted since 0.9 => DRONE_USER_CREATE + + - DRONE_DATABASE_DRIVER=sqlite3 + - DRONE_DATABASE_DATASOURCE=/data/database.sqlite + + # Howto: https://docs.drone.io/server/provider/gitea/ + # See API: https://try.gitea.io/api/swagger#/user/userCreateOAuth2Application + - DRONE_GITEA_SERVER=$DRONE_GITEA_SERVER + - DRONE_GITEA_CLIENT_ID=$DRONE_GITEA_CLIENT_ID + - DRONE_GITEA_CLIENT_SECRET=$DRONE_GITEA_CLIENT_SECRET + + networks: + - default + - build + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - $app_dir_data:/data + + drone-runner: + image: drone/drone-runner-docker:${app_image_version:-1.8} + depends_on: + - drone + environment: + - DRONE_RPC_PROTO=http + - DRONE_RPC_HOST=drone + - DRONE_RUNNER_NAME=drone-runner + + - DRONE_RPC_SECRET=$app_secret_token + - DRONE_RUNNER_CAPACITY=2 + + networks: + - build + volumes: + - /var/run/docker.sock:/var/run/docker.sock + diff --git a/gaia/docker-compose.expose.yml b/gaia/docker-compose.expose.yml new file mode 100644 index 0000000..b53a836 --- /dev/null +++ b/gaia/docker-compose.expose.yml @@ -0,0 +1,5 @@ +services: + gaia: + ports: + - "$app_expose_ip:$app_expose_port:8080" + diff --git a/gaia/docker-compose.yml b/gaia/docker-compose.yml new file mode 100644 index 0000000..8eea742 --- /dev/null +++ b/gaia/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.9" +services: + gaia: + image: "gaiaapp/gaia" + environment: + - "GAIA_RUNNER_API_PASSWORD=$app_secret_token" + - "GAIA_MONGODB_URI=mongodb://mongo/gaia" + runner: + image: "gaiaapp/runner" + environment: + - "GAIA_URL=http://gaia:8080" + - "GAIA_RUNNER_API_PASSWORD=$app_secret_token" + + mongo: + image: "mongo:4.4" + diff --git a/vault/docker-compose.client.yml b/vault/docker-compose.client.yml new file mode 100644 index 0000000..b4ffdf9 --- /dev/null +++ b/vault/docker-compose.client.yml @@ -0,0 +1,8 @@ +services: + + vault-client: + build: . + environment: + VAULT_ADDR: "http://vault:8200" + networks: + default: diff --git a/vault/docker-compose.expose.yml b/vault/docker-compose.expose.yml new file mode 100644 index 0000000..4bdae73 --- /dev/null +++ b/vault/docker-compose.expose.yml @@ -0,0 +1,4 @@ +services: + vault-server: + ports: + - "${app_expose_ip}:${app_expose_port:-8200}:${app_port:-8200}" diff --git a/vault/docker-compose.yml b/vault/docker-compose.yml new file mode 100644 index 0000000..0f9fdb9 --- /dev/null +++ b/vault/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3.8" +services: + vault: + image: vault:latest + environment: + VAULT_ADDR: "http://0.0.0.0:${app_port:-8200}" + VAULT_DEV_ROOT_TOKEN_ID: "${app_secret_token:-admin}" + cap_add: + - IPC_LOCK + networks: + default: +