Files
docker_stack/karylab-entrance/gitea.yml
ChenKaiLiuG c54e7559b0 Add Gitea
2026-01-01 18:07:19 +08:00

94 lines
2.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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