No description
  • Dockerfile 57.8%
  • Shell 42.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Alexander Neonxp Kiryukhin 937cfbaf87
All checks were successful
docker / build-push (push) Successful in 23m21s
feat: sisyphus-база: Go 1.27.1, python3/pip/git/curl, 5 архитектур
- База — ALT Sisyphus (rolling) из registry.basealt.ru
- Go 1.27.1 детерминированно через golang.org/dl;
  /usr/bin/go и gofmt — симлинки на SDK
- python3, pip, git, curl; glibc-pthread (librt для manylinux-колёс)
- Платформы: amd64, arm64, 386, loong64, riscv64
- Публикация тегов latest и 1.1 (версионный — для пиннинга CI-воркфлоу)
2026-09-20 11:53:20 +03:00
.forgejo/workflows feat: sisyphus-база: Go 1.27.1, python3/pip/git/curl, 5 архитектур 2026-09-20 11:53:20 +03:00
files Базовый образ на ALT p11: golang, tzdata Europe/Moscow, ca-certificates-digital.gov.ru 2026-08-15 11:00:19 +03:00
.dockerignore Базовый образ на ALT p11: golang, tzdata Europe/Moscow, ca-certificates-digital.gov.ru 2026-08-15 11:00:19 +03:00
Dockerfile feat: sisyphus-база: Go 1.27.1, python3/pip/git/curl, 5 архитектур 2026-09-20 11:53:20 +03:00
README.md feat: sisyphus-база: Go 1.27.1, python3/pip/git/curl, 5 архитектур 2026-09-20 11:53:20 +03:00

base

Базовый образ на ALT Sisyphus (rolling, из registry.basealt.ru) для сборки и запуска Go-приложений. Платформы: linux/amd64, linux/arm64, linux/386, linux/loong64, linux/riscv64.

Состав

  • golang 1.27.1 — официальная сборка через golang.org/dl; версия зафиксирована в Dockerfile (GO_VERSION) и не зависит от состояния репозитория
  • python3 + pip — системные интерпретатор и пакетный менеджер
  • glibc-pthread — заглушки librt/libpthread для бинарных manylinux-колёс
  • tzdata с таймзоной Europe/Moscow по умолчанию
  • ca-certificates + ca-certificates-digital.gov.ru (Russian Trusted Root CA)
  • симлинк бандла в /etc/ssl/certs/ca-certificates.crt — стандартный путь поиска корней для Go (crypto/x509), Python и другого ПО; иначе бандл ALT игнорируется
  • su-exec для запуска процессов от непривилегированного пользователя

Поведение

  • ENTRYPOINT /init.sh — настраивает таймзону (TIME_ZONE), опционально меняет UID пользователя app (APP_UID), выполняет /srv/init.sh при его наличии и запускает команду от пользователя app.
  • WORKDIR /srv, данные приложения кладите в /srv или /data.

Использование

FROM gitrepo.ru/neonxp/base:latest
COPY app /srv/app
CMD ["/srv/app"]

Сборка внутри образа (в multi-stage builder-этапе):

FROM gitrepo.ru/neonxp/base:latest AS builder
WORKDIR /src
COPY . .
RUN go build -o /srv/app .

Сборка и публикация

Публикуются теги latest и версионный 1.1 (для пиннинга в CI — раннер кэширует образы по тегу, поэтому версионируйте при обновлении):

docker build -t gitrepo.ru/neonxp/base:latest .
docker push gitrepo.ru/neonxp/base:latest

CI (.forgejo/workflows/docker.yml) собирает и пушит мультиархитектурный latest (amd64, arm64, 386, loong64, riscv64 — не-амд64 под QEMU) в registry gitrepo.ru. Нужен секрет репозитория REGISTRY_TOKEN — токен forgejo со скоупом write:package.