62 lines
2 KiB
Text
62 lines
2 KiB
Text
|
|
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"]
|