Files
Atay-Makhzan/Dockerfile
T

81 lines
2.2 KiB
Docker
Raw Normal View History

2025-11-02 10:42:25 +01:00
# syntax=docker/dockerfile:1
2023-10-29 02:44:06 +01:00
# Build stage
FROM docker.io/library/golang:1.25-alpine3.22 AS build-env
2018-03-12 10:59:13 +01:00
2025-11-02 10:42:25 +01:00
ARG GOPROXY=direct
2018-03-12 10:59:13 +01:00
ARG GITEA_VERSION
ARG TAGS="sqlite sqlite_unlock_notify"
ENV TAGS="bindata timetzdata $TAGS"
ARG CGO_EXTRA_CFLAGS
2018-03-12 10:59:13 +01:00
2023-10-29 02:44:06 +01:00
# Build deps
RUN apk --no-cache add \
build-base \
git \
nodejs \
2025-11-02 10:42:25 +01:00
pnpm
2018-03-12 10:59:13 +01:00
WORKDIR ${GOPATH}/src/code.gitea.io/gitea
2025-11-02 10:42:25 +01:00
# Use COPY but not "mount" because some directories like "node_modules" contain platform-depended contents and these directories need to be ignored.
# ".git" directory will be mounted later separately for getting version data.
# TODO: in the future, maybe we can pre-build the frontend assets on one platform and share them for different platforms, the benefit is that it won't be affected by webpack plugin compatibility problems, then the working directory can be fully mounted and the COPY is not needed.
COPY --exclude=.git/ . .
2018-03-12 10:59:13 +01:00
2025-11-02 10:42:25 +01:00
# 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
2018-03-12 10:59:13 +01:00
2023-10-29 02:44:06 +01:00
COPY docker/root /tmp/local
2025-11-02 10:42:25 +01:00
# Set permissions for builds that made under windows which strips the executable bit from file
2023-10-29 02:44:06 +01:00
RUN chmod 755 /tmp/local/usr/bin/entrypoint \
/tmp/local/usr/local/bin/* \
2023-10-29 02:44:06 +01:00
/tmp/local/etc/s6/gitea/* \
/tmp/local/etc/s6/openssh/* \
/tmp/local/etc/s6/.s6-svscan/* \
/go/src/code.gitea.io/gitea/gitea
2023-10-29 02:44:06 +01:00
FROM docker.io/library/alpine:3.22 AS gitea
2015-08-25 12:41:01 +08:00
2016-11-28 14:13:18 +01:00
EXPOSE 22 3000
2015-08-25 12:41:01 +08:00
2017-05-08 13:09:20 +02:00
RUN apk --no-cache add \
2016-11-28 14:13:18 +01:00
bash \
2018-03-12 10:59:13 +01:00
ca-certificates \
curl \
gettext \
2016-11-28 14:13:18 +01:00
git \
linux-pam \
openssh \
2018-03-12 10:59:13 +01:00
s6 \
sqlite \
su-exec \
2025-11-02 10:42:25 +01:00
gnupg
2018-03-12 10:59:13 +01:00
2017-06-30 14:10:37 +08:00
RUN addgroup \
-S -g 1000 \
2016-11-28 14:13:18 +01:00
git && \
2016-11-28 17:22:22 +01:00
adduser \
-S -H -D \
-h /data/git \
2016-11-28 14:13:18 +01:00
-s /bin/bash \
-u 1000 \
2016-11-28 17:22:22 +01:00
-G git \
2016-12-15 10:16:55 +01:00
git && \
echo "git:*" | chpasswd -e
2015-08-17 03:10:23 -04:00
2025-11-02 10:42:25 +01:00
COPY --from=build-env /tmp/local /
COPY --from=build-env /go/src/code.gitea.io/gitea/gitea /app/gitea/gitea
ENV USER=git
ENV GITEA_CUSTOM=/data/gitea
2015-10-02 10:56:36 +01:00
VOLUME ["/data"]
2016-11-28 14:13:18 +01:00
ENTRYPOINT ["/usr/bin/entrypoint"]
2024-12-22 20:31:53 +02:00
CMD ["/usr/bin/s6-svscan", "/etc/s6"]