gitea: Move to multi-stage build

This improves caching by consolidating build steps and using a
multi-stage build step for the binary installation.
This commit is contained in:
Alex Palaistras 2024-01-02 15:41:46 +00:00
parent f7148a0771
commit f9625a8e66
2 changed files with 11 additions and 8 deletions

View File

@ -1,15 +1,19 @@
FROM docker.io/debian:bookworm-slim@sha256:f80c45482c8d147da87613cb6878a7238b8642bcc24fc11bad78c7bec726f340
FROM docker.io/debian:bookworm-slim@sha256:f80c45482c8d147da87613cb6878a7238b8642bcc24fc11bad78c7bec726f340 AS builder
ARG VERSION=1.21.3 # renovate: datasource=github-releases depName=go-gitea/gitea extractVersion=^v(?<version>.*)$
ENV PACKAGE_URL https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
ADD https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64 /src/gitea
RUN install -D --mode 0755 /src/gitea /build/usr/bin/gitea
FROM docker.io/debian:bookworm-slim@sha256:f80c45482c8d147da87613cb6878a7238b8642bcc24fc11bad78c7bec726f340
RUN apt-get update -y && apt-get upgrade -y && apt-get install -y --no-install-recommends \
curl ca-certificates gettext gosu git openssh-client gnupg
ca-certificates gettext gosu
RUN curl --fail --silent --show-error --location -o /usr/bin/gitea ${PACKAGE_URL} && chmod +x /usr/bin/gitea
RUN apt-get update -y && apt-get install -y --no-install-recommends \
curl git openssh-client gnupg
RUN addgroup --system --gid 10000 git
RUN adduser --system --uid 10000 --ingroup git --home /var/lib/gitea git
RUN adduser --system --group --uid 10000 --home /var/lib/gitea git
COPY --from=builder /build /
COPY container/config /etc/gitea
COPY container/run-gitea /run-gitea

View File

@ -6,7 +6,6 @@ set -eu
envsubst < /etc/gitea/config.ini.template > /etc/gitea/config.ini
# Create data directories and correct permissions for data files.
install --owner git --group git --mode 700 --directory /var/lib/gitea
chown -R git:git /etc/gitea
# Initialize default condiguration if needed.
@ -26,4 +25,4 @@ if ! test -f /var/lib/gitea/gitea.db; then
fi
# Run entrypoint under specific user.
gosu git /usr/bin/gitea -c /etc/gitea/config.ini web "$@"
exec gosu git /usr/bin/gitea -c /etc/gitea/config.ini web "$@"