mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-08-19 17:01:12 +00:00
(cherry picked from commit9c06a318b8) (cherry picked from commit95859da3b4) (cherry picked from commite3a5f6c1ed) (cherry picked from commite441e9a5c7) (cherry picked from commitc37daa897a) (cherry picked from commit682c695299) (cherry picked from commitb8a34a927b) (cherry picked from commitec560da539) (cherry picked from commit9da7c9bf41)
71 lines
1.7 KiB
Docker
71 lines
1.7 KiB
Docker
#Build stage
|
|
FROM docker.io/library/golang:1.20-alpine3.17 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.17
|
|
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 /
|
|
RUN cd /usr/local/bin ; ln -s gitea forgejo
|
|
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
|