/
uzer_007
/
Rixea
Обзор
Документация
Войти
/
uzer_007
/
Rixea
Код
Запросы
0
Задачи
Вики
Пакеты
5
Релизы
2
CI/CD
Аналитика
Безопасность
master
Dockerfile.rootless
90 строк
3 KB
uzer_007
feat: первая версия Rixea
02 авг 2026, 22:16
02 авг 2026, 22:16
d4f7504
Код
Авторство
О чём код?
# syntax=docker/dockerfile:1 # Build frontend on the native platform to avoid QEMU-related issues with nodejs ecosystem FROM --platform=$BUILDPLATFORM docker.io/library/golang:1.26-alpine3.24 AS frontend-build RUN apk --no-cache add build-base git nodejs pnpm WORKDIR /src COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ RUN --mount=type=cache,target=/root/.local/share/pnpm/store pnpm install --frozen-lockfile COPY --exclude=.git/ . . RUN make frontend # Build backend for each target platform FROM docker.io/library/golang:1.26-alpine3.24 AS build-env ARG RIXEA_VERSION ARG TAGS="" ENV TAGS="bindata timetzdata $TAGS" ARG CGO_EXTRA_CFLAGS # Build deps RUN apk --no-cache add \ build-base \ git WORKDIR ${GOPATH}/src/gitverse.ru/uzer_007/Rixea COPY go.mod go.sum ./ RUN go mod download # See the comments in Dockerfile COPY --exclude=.git/ . . COPY --from=frontend-build /src/public/assets public/assets # Build Rixea; the .git mount is required for version data. RUN --mount=type=cache,target="/root/.cache/go-build" \ --mount=type=bind,source=".git/",target=".git/" \ make EXTRA_GOFLAGS="-buildvcs=false" backend 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/gitverse.ru/uzer_007/Rixea/rixea FROM docker.io/library/alpine:3.24 AS rixea-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/rixea/git \ -s /bin/bash \ -u 1000 \ -G git \ git RUN mkdir -p /var/lib/rixea /etc/rixea RUN chown git:git /var/lib/rixea /etc/rixea COPY --from=build-env /tmp/local / COPY --from=build-env --chown=root:root /go/src/gitverse.ru/uzer_007/Rixea/rixea /app/rixea/rixea COPY --from=build-env --chown=root:root /go/src/gitverse.ru/uzer_007/Rixea/LICENSE /usr/share/licenses/rixea/LICENSE COPY --from=build-env --chown=root:root /go/src/gitverse.ru/uzer_007/Rixea/THIRD_PARTY_NOTICES.md /usr/share/licenses/rixea/THIRD_PARTY_NOTICES.md # git:git USER 1000:1000 ENV RIXEA_WORK_DIR=/var/lib/rixea ENV RIXEA_CUSTOM=/var/lib/rixea/custom ENV RIXEA_TEMP=/tmp/rixea ENV TMPDIR=/tmp/rixea # TODO add to docs the ability to define the ini to load (useful to test and revert a config) ENV RIXEA_APP_INI=/etc/rixea/app.ini ENV HOME="/var/lib/rixea/git" VOLUME ["/var/lib/rixea", "/etc/rixea"] WORKDIR /var/lib/rixea # HINT: HEALTH-CHECK-ENDPOINT: don't use HEALTHCHECK, search this hint keyword for more information ENTRYPOINT ["/usr/bin/dumb-init", "--", "/usr/local/bin/docker-entrypoint.sh"] CMD []