mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.9 KiB
81 lines
1.9 KiB
# syntax=docker/dockerfile:1 |
|
# Build stage |
|
FROM docker.io/library/golang:1.25-alpine3.22 AS build-env |
|
|
|
ARG GOPROXY=direct |
|
|
|
ARG GITEA_VERSION |
|
ARG TAGS="sqlite sqlite_unlock_notify" |
|
ENV TAGS="bindata timetzdata $TAGS" |
|
ARG CGO_EXTRA_CFLAGS |
|
|
|
# Build deps |
|
RUN apk --no-cache add \ |
|
build-base \ |
|
git \ |
|
nodejs \ |
|
pnpm |
|
|
|
WORKDIR ${GOPATH}/src/code.gitea.io/gitea |
|
# See the comments in Dockerfile |
|
COPY --exclude=.git/ . . |
|
|
|
# Build gitea, .git mount is required for version data |
|
RUN --mount=type=cache,target=/go/pkg/mod \ |
|
--mount=type=cache,target="/root/.cache/go-build" \ |
|
--mount=type=cache,target=/root/.local/share/pnpm/store \ |
|
--mount=type=bind,source=".git/",target=".git/" \ |
|
make |
|
|
|
COPY docker/rootless /tmp/local |
|
|
|
# Set permissions for builds that made under windows which strips the executable bit from file |
|
RUN chmod 755 /tmp/local/usr/local/bin/* \ |
|
/go/src/code.gitea.io/gitea/gitea |
|
|
|
FROM docker.io/library/alpine:3.22 AS gitea-rootless |
|
|
|
EXPOSE 2222 3000 |
|
|
|
RUN apk --no-cache add \ |
|
bash \ |
|
ca-certificates \ |
|
dumb-init \ |
|
gettext \ |
|
git \ |
|
curl \ |
|
gnupg \ |
|
openssh-keygen |
|
|
|
RUN addgroup \ |
|
-S -g 1000 \ |
|
git && \ |
|
adduser \ |
|
-S -H -D \ |
|
-h /var/lib/gitea/git \ |
|
-s /bin/bash \ |
|
-u 1000 \ |
|
-G git \ |
|
git |
|
|
|
RUN mkdir -p /var/lib/gitea /etc/gitea |
|
RUN chown git:git /var/lib/gitea /etc/gitea |
|
|
|
COPY --from=build-env /tmp/local / |
|
COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea |
|
|
|
# git:git |
|
USER 1000:1000 |
|
ENV GITEA_WORK_DIR=/var/lib/gitea |
|
ENV GITEA_CUSTOM=/var/lib/gitea/custom |
|
ENV GITEA_TEMP=/tmp/gitea |
|
ENV TMPDIR=/tmp/gitea |
|
|
|
# TODO add to docs the ability to define the ini to load (useful to test and revert a config) |
|
ENV GITEA_APP_INI=/etc/gitea/app.ini |
|
ENV HOME="/var/lib/gitea/git" |
|
VOLUME ["/var/lib/gitea", "/etc/gitea"] |
|
WORKDIR /var/lib/gitea |
|
|
|
ENTRYPOINT ["/usr/bin/dumb-init", "--", "/usr/local/bin/docker-entrypoint.sh"] |
|
CMD []
|
|
|