This commit is contained in:
ryuuseijin 2026-08-17 22:47:22 +08:00
commit 27c4191be8
17 changed files with 730 additions and 0 deletions

61
Dockerfile Normal file
View file

@ -0,0 +1,61 @@
FROM golang:1.25-alpine AS tools
RUN apk add --no-cache git
RUN GOBIN=/usr/local/bin go install github.com/caddyserver/caddy/v2/cmd/caddy@v2.10.2
RUN GOBIN=/usr/local/bin go install github.com/DarthSim/hivemind@latest
FROM debian:bookworm-slim
ARG DEBIAN_FRONTEND=noninteractive
ARG TARGETARCH
ARG FORGEJO_VERSION=11.0.14
ENV LANG=C.UTF-8
ENV GITEA_WORK_DIR=/data/forgejo
ENV GITEA_CUSTOM=/data/forgejo/custom
ENV GITEA_TEMP=/tmp/gitea
ENV GITEA_APP_INI=/data/forgejo/custom/conf/app.ini
ENV FORGEJO_HOME=/data/forgejo/git
RUN apt-get -qq update && \
apt-get -qq install --no-install-recommends -y \
bash \
ca-certificates \
crudini \
curl \
gettext-base \
git \
locales \
openssh-client \
restic \
sqlite3 \
tzdata \
xz-utils && \
apt-get -qq clean && \
rm -rf /var/lib/apt/lists/*
RUN printf 'C.UTF-8 UTF-8\n' > /etc/locale.gen && \
locale-gen && \
groupadd -g 1001 forgejo && \
useradd -d /data/forgejo/git -M -u 1001 -g forgejo -s /bin/sh forgejo
RUN arch="${TARGETARCH:-$(dpkg --print-architecture)}" && \
case "$arch" in \
amd64|arm64) forgejo_arch="$arch" ;; \
*) echo "Unsupported Forgejo architecture: $arch" >&2; exit 1 ;; \
esac && \
curl -fLo /usr/local/bin/forgejo "https://codeberg.org/forgejo/forgejo/releases/download/v${FORGEJO_VERSION}/forgejo-${FORGEJO_VERSION}-linux-${forgejo_arch}" && \
chmod 755 /usr/local/bin/forgejo && \
ln -sf /usr/local/bin/forgejo /usr/local/bin/gitea
RUN mkdir -p /etc/caddy /etc/templates /etc/auth /tmp/gitea /data /data/forgejo
COPY --from=tools /usr/local/bin/caddy /usr/local/bin/hivemind /usr/local/bin/
COPY Caddyfile /etc/caddy/Caddyfile
COPY Procfile /etc/Procfile
COPY forgejo-app.ini.tmpl /etc/templates/forgejo-app.ini.tmpl
COPY bin/ /usr/local/bin/
RUN chmod 755 /usr/local/bin/* && \
chown -R forgejo:forgejo /data/forgejo /tmp/gitea
CMD ["/usr/local/bin/start-services.sh"]