mytfenv/docker-compose.yml.old12
2026-10-31 17:52:19 -05:00

88 lines
2.7 KiB
Text

networks:
test-net:
driver: bridge
name: gitops-test-network
volumes:
forgejo-data:
driver: local
driver_opts:
type: none
o: bind
device: ${PWD}/forgejo_data
runner-data:
driver: local
driver_opts:
type: none
o: bind
device: ${PWD}/runner_data
services:
# 1. FORGEJO
forgejo:
image: data.forgejo.org/forgejo/forgejo:9
container_name: forgejo
networks:
- test-net
environment:
- FORGEJO__SERVER__HTTP_PORT=3000
- FORGEJO__SERVER__ROOT_URL=http://localhost:3000
- FORGEJO__ACTIONS__ENABLED=true
- FORGEJO__PACKAGES__ENABLED=true
- FORGEJO__PACKAGES__CONTAINER_ENABLED=true
ports:
- "3000:3000"
- "3005:3000"
- "2222:22"
volumes:
- forgejo-data:/data
restart: always
# 2. FORGEJO RUNNER
forgejo-runner:
image: data.forgejo.org/forgejo/runner:9
container_name: forgejo-runner
networks:
- test-net
user: "0:0"
entrypoint: ["/bin/sh", "-c"]
command: ["forgejo-runner daemon"]
environment:
- GITEA_INSTANCE_URL=http://forgejo:3000
- GITEA_RUNNER_REGISTRATION_TOKEN=z6xlwg3dSRYZ59zUxfrztDJasG6VkvulFyTwtJQS
- GITEA_RUNNER_NAME=debian-local-runner
- GITEA_RUNNER_LABELS=ubuntu-latest:docker://debian:stable-slim,debian-stable:docker://debian:stable-slim
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- runner-data:/data
depends_on:
- forgejo
restart: always
# 3. KUBERNETES INITIALIZER (KORRIGIERT: Cgroup-Kompatibilität für Devuan/elogind)
kind-cluster:
image: alpine:latest
container_name: kind-initializer
networks:
- test-net
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /sys/fs/cgroup:/sys/fs/cgroup:ro # Reicht die Host-Cgroups schreibgeschützt durch
- ./kind_kubeconfig:/output_kubeconfig
entrypoint: >
sh -c "apk add --no-cache wget docker-cli ca-certificates;
update-ca-certificates;
wget -q --show-progress https://github.com -O /usr/local/bin/kind;
chmod +x /usr/local/bin/kind;
if ! /usr/local/bin/kind get clusters 2>/dev/null | grep -q gitops-test; then
# HIER: Wir erzwingen die Host-Cgroup-Namespaces für systemd-freie Systeme
/usr/local/bin/kind create cluster --name gitops-test --image kindest/node:v1.28.0 --kubeadm-config=/dev/stdin <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
kubeProxyMode: "iptables"
EOF
fi;
/usr/local/bin/kind get kubeconfig --name gitops-test > /output_kubeconfig/config;
tail -f /dev/null"
restart: always