docker compose.yaml
services:
woodpecker-server:
container_name: woodpecker-server
image: woodpeckerci/woodpecker-server:v3.13.0
restart: unless-stopped
hostname: woodpecker
ports:
- 8000:8000
volumes:
- $PWD/woodpecker-server-data:/var/lib/woodpecker/
networks:
- default
environment:
- WOODPECKER_OPEN=true
- WOODPECKER_ADMIN=charleye
- WOODPECKER_HOST=https://woodpecker.abitacc.com
- WOODPECKER_GITEA=true
- WOODPECKER_GITEA_URL=https://git.abitacc.com
- WOODPECKER_GITEA_CLIENT=${GITEA_CLIENT}
- WOODPECKER_GITEA_SECRET=${GITEA_SECRET}
- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
woodpecker-agent:
container_name: woodpecker-agent
image: woodpeckerci/woodpecker-agent:v3.13.0
restart: unless-stopped
hostname: woodpecker-agent
command: agent
depends_on:
- woodpecker-server
networks:
- default
volumes:
- $PWD/woodpecker-agent-config:/etc/woodpecker
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WOODPECKER_SERVER=woodpecker-server:9000
- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
- WOODPECKER_MAX_WORKFLOWS=16
networks:
default:
name: caddy_default
external: true
WOODPECKER_AGENT_SECRET就是server和agent之间通信使用的密钥,使用随机生成的字符串就可以
在gitea里面创建一个用于woodpecker的OAuth2应用:

mkdir -p ~/ssh
ssh-keygen -t rsa -f ~/ssh/id_rsa
ssh-keyscan -p 29422 -t rsa,ecdsa,ed25519 git.abitacc.com 192.168.0.120 > ~/ssh/known_hosts
chmod 600 ~/ssh/known_hosts
cat > ~/ssh/ssh_config <<'EOF'
Host git.abitacc.com 192.168.0.120
Port 29422
User git
IdentityFile /app/.ssh/id_rsa
IdentitiesOnly yes
StrictHostKeyChecking accept-new
UserKnownHostsFile /app/.ssh/known_hosts
EOF
chmod 600 ~/ssh/ssh_config
把上面生成的id_rsa.pub公钥增添到gitea里面