Files
LMS/ci/Dockerfile
Vladislav Kopnin f3d614bb33 ci: изолировать пайплайны на отдельной VM
- Woodpecker workflows требуют агент с меткой isolation=dedicated-vm
- шаги выполняются в lms-ci:1 с nested dockerd, без хост-Docker сокета
- ci/Dockerfile: прогретый immutable-образ (Java, Python, Node, Gradle-кэш)
- ci-dind.sh поднимает dockerd внутри privileged-шага; ci-build-image.sh собирает образ
- deploy/WOODPECKER.md: отдельная VM, firewall, отсутствие production-секретов,
  trusted repo, чек-лист безопасности
2026-10-29 12:01:44 +03:00

25 lines
1.1 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Предварительно прогретый CI-образ для Woodpecker.
# Сборка на CI VM (доверенный администратором коммит):
# ./scripts/ci-build-image.sh lms-ci:1
# Образ содержит только зависимости; исходники в пайплайне берутся из checkout.
FROM docker:27-dind
RUN apk add --no-cache openjdk21-jdk python3 bash
WORKDIR /opt/lms-warmup
COPY gradle gradle
COPY gradlew settings.gradle.kts build.gradle.kts gradle.properties ./
COPY buildSrc buildSrc
COPY config config
COPY libs libs
COPY services services
COPY web web
# Прогреваем Gradle-кэш и плагины. Это ускоряет check/smoke/release,
# при этом кэш остаётся внутри неизменяемого образа, а не в общем volume.
RUN ./gradlew --no-daemon testClasses --console=plain
# Исходники нужны были только для прогрева кэша; в образе их не оставляем.
RUN rm -rf /opt/lms-warmup