mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-10-25 03:22:36 +00:00
(cherry picked from commitdd1971d4e6) (cherry picked from commit3981dbaf8c) (cherry picked from commit8dff3cc2d1) (cherry picked from commite7673e5d22) (cherry picked from commit326174064b) (cherry picked from commiteb769dbde4) (cherry picked from commit335829ade2) (cherry picked from commit5e8e4f549d) Conflicts: Dockerfile Dockerfile.rootless (cherry picked from commitb777fc91d0) (cherry picked from commit02cda642ec) (cherry picked from commit96ef93f3bc) (cherry picked from commitaa424551f2) Conflicts: Dockerfile Dockerfile.rootless (cherry picked from commite54fa86e49) (cherry picked from commit043fa6d664) (cherry picked from commit805b162480) (cherry picked from commit86bf362a3c) (cherry picked from commit13e0007959) (cherry picked from commit00ff6f7cb3) (cherry picked from commit95c7d8e883) (cherry picked from commitfb033d2bb6) (cherry picked from commit1147910a55) (cherry picked from commit6590b6e99c) (cherry picked from commit78938113e4) (cherry picked from commit 57338224f172e30a72f03f565aa47876e1213e77) (cherry picked from commit4266cbcdd4) (cherry picked from commitbdc766a5a2) (cherry picked from commit6fb9ad8504) (cherry picked from commitc4e6383240) (cherry picked from commit490fa55b3a) (cherry picked from commit802c8e72be) (cherry picked from commit2b1efe2030) (cherry picked from commitfdcdd7389a) (cherry picked from commitb9ae491650) (cherry picked from commite7867c6512) (cherry picked from commit0a43263fa6) (cherry picked from commit64bb6b8982) (cherry picked from commitdcc1fd6292) (cherry picked from commitb0250fd533) (cherry picked from commit427b059996) (cherry picked from commitb6058e28cb) (cherry picked from commitb91a41dd79) (cherry picked from commitb8bcb22726) (cherry picked from commit69ae87f11f) Conflicts: Dockerfile Dockerfile.rootless https://codeberg.org/forgejo/forgejo/pulls/2029 (cherry picked from commita4a846a8d5) (cherry picked from commita1a947ce03) (cherry picked from commit55bd48007f) (cherry picked from commitf012eb7cb0)
90 lines
2.4 KiB
Docker
90 lines
2.4 KiB
Docker
# Build stage
|
|
FROM docker.io/library/golang:1.21-alpine3.19 AS build-env
|
|
|
|
ARG GOPROXY
|
|
ENV GOPROXY ${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 \
|
|
npm \
|
|
&& rm -rf /var/cache/apk/*
|
|
|
|
# Setup repo
|
|
COPY . ${GOPATH}/src/code.gitea.io/gitea
|
|
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
|
|
|
|
# Checkout version if set
|
|
RUN if [ -n "${GITEA_VERSION}" ]; then git checkout "${GITEA_VERSION}"; fi \
|
|
&& make clean-all build
|
|
|
|
# Begin env-to-ini build
|
|
RUN go build contrib/environment-to-ini/environment-to-ini.go
|
|
|
|
# Copy local files
|
|
COPY docker/rootless /tmp/local
|
|
|
|
# Set permissions
|
|
RUN chmod 755 /tmp/local/usr/local/bin/docker-entrypoint.sh \
|
|
/tmp/local/usr/local/bin/docker-setup.sh \
|
|
/tmp/local/usr/local/bin/gitea \
|
|
/go/src/code.gitea.io/gitea/gitea \
|
|
/go/src/code.gitea.io/gitea/environment-to-ini
|
|
RUN chmod 644 /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete
|
|
|
|
FROM docker.io/library/alpine:3.19
|
|
LABEL maintainer="contact@forgejo.org"
|
|
|
|
EXPOSE 2222 3000
|
|
|
|
RUN apk --no-cache add \
|
|
bash \
|
|
ca-certificates \
|
|
dumb-init \
|
|
gettext \
|
|
git \
|
|
curl \
|
|
gnupg \
|
|
&& rm -rf /var/cache/apk/*
|
|
|
|
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
|
|
COPY --from=build-env --chown=root:root /go/src/code.gitea.io/gitea/environment-to-ini /usr/local/bin/environment-to-ini
|
|
COPY --from=build-env /go/src/code.gitea.io/gitea/contrib/autocompletion/bash_autocomplete /etc/profile.d/gitea_bash_autocomplete.sh
|
|
|
|
# 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 []
|