mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-10-26 12:01:08 +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
70 lines
1.7 KiB
Docker
70 lines
1.7 KiB
Docker
#Build stage
|
|
FROM docker.io/library/golang:1.20-alpine3.18 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
|
|
|
|
#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
|
|
|
|
FROM docker.io/library/alpine:3.18
|
|
LABEL maintainer="contact@forgejo.org"
|
|
|
|
EXPOSE 22 3000
|
|
|
|
RUN apk --no-cache add \
|
|
bash \
|
|
ca-certificates \
|
|
curl \
|
|
gettext \
|
|
git \
|
|
linux-pam \
|
|
openssh \
|
|
s6 \
|
|
sqlite \
|
|
su-exec \
|
|
gnupg
|
|
|
|
RUN addgroup \
|
|
-S -g 1000 \
|
|
git && \
|
|
adduser \
|
|
-S -H -D \
|
|
-h /data/git \
|
|
-s /bin/bash \
|
|
-u 1000 \
|
|
-G git \
|
|
git && \
|
|
echo "git:*" | chpasswd -e
|
|
|
|
ENV USER git
|
|
ENV GITEA_CUSTOM /data/gitea
|
|
|
|
VOLUME ["/data"]
|
|
|
|
ENTRYPOINT ["/usr/bin/entrypoint"]
|
|
CMD ["/bin/s6-svscan", "/etc/s6"]
|
|
|
|
COPY docker/root /
|
|
COPY --from=build-env /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea
|
|
COPY --from=build-env /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
|
|
RUN chmod 755 /usr/bin/entrypoint /app/gitea/gitea /usr/local/bin/gitea /usr/local/bin/environment-to-ini
|
|
RUN chmod 755 /etc/s6/gitea/* /etc/s6/openssh/* /etc/s6/.s6-svscan/*
|
|
RUN chmod 644 /etc/profile.d/gitea_bash_autocomplete.sh
|