From f112d8dce5c4bdcc8e1b560e5158c2f114110fd6 Mon Sep 17 00:00:00 2001 From: sujiba Date: Tue, 19 Mar 2024 21:22:41 +0000 Subject: [PATCH] =?UTF-8?q?forgejo/docker-compose.yml=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- forgejo/docker-compose.yml | 82 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 forgejo/docker-compose.yml diff --git a/forgejo/docker-compose.yml b/forgejo/docker-compose.yml new file mode 100644 index 0000000..3a5624f --- /dev/null +++ b/forgejo/docker-compose.yml @@ -0,0 +1,82 @@ +# Copyright 2023 The Forgejo Authors. +# SPDX-License-Identifier: MIT + +# +# Create a secret with: +# +# openssl rand -hex 20 +# +# Replace all occurences of {SHARED_SECRET} below with the output. +# +# NOTE: a token obtained from the Forgejo web interface cannot be used +# as a shared secret. +# +# Replace {ROOT_PASSWORD} with a secure password +version: "3" + +services: + + docker-in-docker: + image: docker:dind + privileged: true + command: [ "dockerd", "-H", "tcp://0.0.0.0:2375", "--tls=false" ] + + forgejo: + image: codeberg.org/forgejo/forgejo:1.21 + container_name: forgejo + command: >- + bash -c ' + /bin/s6-svscan /etc/s6 & + sleep 10 ; + su -c "forgejo forgejo-cli actions register --secret {SHARED_SECRET} --labels docker --version 3.3.0" git ; + su -c "forgejo admin user create --admin --username root --password {ROOT_PASSWORD} --email root@example.com" git ; + sleep infinity + ' + environment: + FORGEJO__security__INSTALL_LOCK: "true" + FORGEJO__log__LEVEL: "debug" + FORGEJO__repository__ENABLE_PUSH_CREATE_USER: "true" + FORGEJO__repository__DEFAULT_PUSH_CREATE_PRIVATE: "false" + FORGEJO__repository__DEFAULT_REPO_UNITS: "repo.code,repo.actions" + volumes: + - ./volumes/forgejo-data:/data + ports: + - 127.0.0.1:13000:3000 + + runner-register: + image: code.forgejo.org/forgejo/runner:3.3.0 + container_name: forgejo_runner + links: + - docker-in-docker + - forgejo + environment: + DOCKER_HOST: tcp://docker-in-docker:2375 + volumes: + - ./volumes/runner-data:/data + user: 0:0 + command: >- + bash -ec ' + while : ; do + forgejo-runner create-runner-file --connect --instance http://forgejo:3000 --name runner --secret {SHARED_SECRET} && break ; + sleep 1 ; + done ; + forgejo-runner generate-config > config.yml ; + sed -i -e "s|network: .*|network: host|" config.yml ; + sed -i -e "s|labels: \[\]|labels: \[\"docker:docker://alpine:3.18\"\]|" config.yml ; + chown -R 1000:1000 /data + ' + + runner-daemon: + image: code.forgejo.org/forgejo/runner:3.3.0 + container_name: forgejo_runner_daemon + links: + - docker-in-docker + - forgejo + environment: + DOCKER_HOST: tcp://docker-in-docker:2375 + depends_on: + runner-register: + condition: service_completed_successfully + volumes: + - ./volumes/runner-data:/data + command: "forgejo-runner --config config.yml daemon"