This commit is contained in:
Nikita Romanov 2025-06-21 02:01:33 +03:00
parent 6103eee2d1
commit 86d3ccab1e
6 changed files with 74 additions and 27 deletions

3
.gitignore vendored
View file

@ -1,3 +1,6 @@
.idea .idea
.DS_Store .DS_Store
.env .env
/woodpecker/agent-data/
/woodpecker/server-data/

View file

@ -4,3 +4,5 @@
```text ```text
docker:docker://data.forgejo.org/oci/alpine:3.20 docker:docker://data.forgejo.org/oci/alpine:3.20
``` ```
https://development-operations.logiq.one/

9
caddy/Caddyfile Normal file
View file

@ -0,0 +1,9 @@
# expose WebUI and API
development-operations.logiq.one {
reverse_proxy woodpecker-server:8000
}
# expose gRPC
woodpecker-agent.logiq.com {
reverse_proxy h2c://woodpecker-server:9000
}

View file

@ -1,28 +1,53 @@
services: services:
dind: caddy:
image: "docker:dind" image: caddy:latest
container_name: "dind" container_name: caddy
hostname: "dind" hostname: caddy
privileged: "true" restart: always
command: [ "dockerd", "-H", "tcp://0.0.0.0:2375", "--tls=false" ] # labels:
restart: "unless-stopped" # logging: promtail
# logging_jobname: caddy
runner: cap_add:
image: "data.forgejo.org/forgejo/runner:6.3.1" - NET_ADMIN
container_name: "runner" ports:
hostname: "runner" - 80:80
links: - 443:443
- dind - 443:443/udp
depends_on: extra_hosts:
dind: - host.docker.internal:host-gateway
condition: service_started
environment:
DOCKER_HOST: tcp://dind:2375
# User without root privileges, but with access to `./data`.
user: 1001:1001
volumes: volumes:
- ./runner/data:/data - ./caddy/Caddyfile:/etc/caddy/Caddyfile
restart: unless-stopped - ./caddy/data:/data
command: "/bin/sh -c 'sleep 5; forgejo-runner daemon'" - ./caddy/certificates:/data/caddy/certificates
# command: "/bin/sh -c 'while : ; do sleep 1 ; done ;'" - ./caddy/config:/config
woodpecker-server:
image: woodpeckerci/woodpecker-server:v3
env_file:
- path: ./woodpecker/.default.env
required: true
- path: ./woodpecker/.env
required: false
ports:
- 8000:8000
volumes:
- ./woodpecker/server-data:/var/lib/woodpecker/
woodpecker-agent:
image: woodpeckerci/woodpecker-agent:v3
command: agent
restart: always
env_file:
- path: ./woodpecker/.default.env
required: true
- path: ./woodpecker/.env
required: false
ports:
- 9000:9000
depends_on:
- woodpecker-server
volumes:
- ./woodpecker/agent-data:/etc/woodpecker
- /var/run/docker.sock:/var/run/docker.sock

View file

@ -1,2 +0,0 @@
USER_UID=1000
USER_GID=1000

10
woodpecker/.default.env Normal file
View file

@ -0,0 +1,10 @@
WOODPECKER_ADMIN=admin
WOODPECKER_SERVER=woodpecker-server:9000
WOODPECKER_HOST=http://woodpecker
WOODPECKER_AGENT_SECRET=agent_secret_key
WOODPECKER_FORGEJO=true
WOODPECKER_FORGEJO_URL=http://forgejo
WOODPECKER_FORGEJO_CLIENT=forgejo_client_key
WOODPECKER_FORGEJO_SECRET=forgejo_secret_key