Concourse CI
-
Tool needed for creating keys get from here
docker-compose.yml
services:
concourse-db:
image: postgres:17.6-trixie
environment:
POSTGRES_DB: concourse
POSTGRES_PASSWORD: dbpass
POSTGRES_USER: concourse
PGDATA: /database
POSTGRES_HOST_AUTH_METHOD: trust #for healthcheck
healthcheck:
test: ["CMD-SHELL", "pg_isready -U concourse_user -d concourse"]
interval: 3s
timeout: 3s
retries: 5
volumes:
- ./concourse-db:/var/lib/postgresql/data
restart: unless-stopped
web:
image: concourse/concourse:7.14.2
command: web
privileged: true
cgroup: host
depends_on:
concourse-db:
condition: service_healthy
ports: ["8080:8080"]
environment:
CONCOURSE_POSTGRES_HOST: concourse-db
CONCOURSE_POSTGRES_USER: concourse
CONCOURSE_POSTGRES_PASSWORD: dbpass
CONCOURSE_POSTGRES_DATABASE: concourse
CONCOURSE_EXTERNAL_URL: http://10.0.5x.1xx:8080
CONCOURSE_ADD_LOCAL_USER: admin:password
CONCOURSE_MAIN_TEAM_LOCAL_USER: admin
# instead of relying on the default "detect"
# CONCOURSE_WORKER_BAGGAGECLAIM_DRIVER: overlay
# CONCOURSE_CLIENT_SECRET: Y29uY291cnNlLXdlYgo=
# CONCOURSE_TSA_CLIENT_SECRET: Y29uY291cnNlLXdvcmtlcgo=
CONCOURSE_CLUSTER_NAME: wolken
# CONCOURSE_WORKER_CONTAINERD_DNS_SERVER: "10.0.50.123"
# CONCOURSE_WORKER_RUNTIME: "guardian"
# CONCOURSE_WORKER_RUNTIME: "containerd"
CONCOURSE_ENABLE_PIPELINE_INSTANCES: "true"
CONCOURSE_ENABLE_ACROSS_STEP: "true"
CONCOURSE_ENABLE_RESOURCE_CAUSALITY: "true"
CONCOURSE_ENABLE_CACHE_STREAMED_VOLUMES: "true"
CONCOURSE_SESSION_SIGNING_KEY: /concourse-keys/session_signing_key
CONCOURSE_TSA_AUTHORIZED_KEYS: /concourse-keys/authorized_worker_keys
CONCOURSE_TSA_HOST_KEY: /concourse-keys/tsa_host_key
restart: unless-stopped
volumes:
- .:/src
- ./concourse-keys:/concourse-keys
worker:
image: concourse/concourse:7.14.2
command: worker
privileged: true
depends_on: [web]
cgroup: host
stop_signal: SIGUSR2
logging:
driver: "json-file"
options:
max-file: "5"
max-size: "10m"
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Allows worker to interact with Docker daemon
- ./concourse-keys:/concourse-keys
environment:
CONCOURSE_RUNTIME: containerd
CONCOURSE_TSA_PUBLIC_KEY: /concourse-keys/tsa_host_key.pub
CONCOURSE_TSA_WORKER_PRIVATE_KEY: /concourse-keys/worker_key
CONCOURSE_LOG_LEVEL: debug
CONCOURSE_TSA_HOST: web:2222
CONCOURSE_BIND_IP: 0.0.0.0
CONCOURSE_BAGGAGECLAIM_BIND_IP: 0.0.0.0
# avoid using loopbacks
CONCOURSE_BAGGAGECLAIM_DRIVER: overlay
# work with docker-compose's dns
CONCOURSE_CONTAINERD_DNS_PROXY_ENABLE: "true"
# enable DNS proxy to support Docker's 127.x.x.x DNS server
# CONCOURSE_GARDEN_DNS_PROXY_ENABLE: "true"
restart: unless-stopped
ports:
- 7777:7777
- 7788:7788