Add Gitea

This commit is contained in:
ChenKaiLiuG
2026-01-01 18:07:19 +08:00
parent f3fe55ef67
commit c54e7559b0

View File

@@ -0,0 +1,94 @@
version: "3"
services:
# 1. 資料庫服務
db:
image: postgres:14
container_name: gitea_db
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=gitea
networks:
- gitea-net
volumes:
- postgres_db:/var/lib/postgresql/data
# 2. Gitea 主程式
server:
image: gitea/gitea:latest
container_name: gitea_server
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
# 資料庫連線設定
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=${POSTGRES_PASSWORD}
# 啟用 Actions (關鍵設定)
- GITEA__actions__ENABLED=true
networks:
- gitea-net
- webproxy
depends_on:
- db
ports:
- "7800:3000" # 網頁瀏覽埠
- "7822:22" # SSH Clone 埠
volumes:
- /mnt/data/External/gitea/gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
# 3. DinD Service (新增:獨立的 Docker Daemon)
docker:
image: docker:dind
container_name: gitea_dind
restart: always
privileged: true # DinD 必須開啟此權限才能運作
environment:
- DOCKER_TLS_CERTDIR= # 設為空字串以關閉 TLS簡化內部連線
networks:
- gitea-net
volumes:
- gitea_docker_certs:/certs/client
- gitea_docker_data:/var/lib/docker # 持久化,避免重啟後又要重新 pull image
# 4. Actions Runner (負責跑自動化腳本)
runner:
image: gitea/act_runner:latest
container_name: gitea_runner
restart: always
depends_on:
- server
- docker
networks:
- gitea-net
volumes:
- /mnt/data/External/gitea/runner_data:/data
environment:
- CONFIG_FILE=/data/config.yaml
# 注意Runner 需要註冊 Token我們在啟動後手動輸入一次即可
- GITEA_INSTANCE_URL=http://server:3000
# 關鍵修改:告訴 Runner 不要找 Socket而是用 TCP 連線到 docker 容器
- DOCKER_HOST=tcp://docker:2375
volumes:
postgres_db:
gitea_docker_certs:
gitea_docker_data:
networks:
gitea-net:
driver: bridge
# npm bridge
webproxy:
external: true