42 lines
1.5 KiB
Docker
42 lines
1.5 KiB
Docker
FROM alpine:3.16.9
|
||
|
||
# Метаданные для CI/CD
|
||
LABEL maintainer="Alexander Zhirov <alexander@zhirov.kz>"
|
||
LABEL version="0.1.0"
|
||
LABEL description="Адаптированный для Docker >=27.3.1 образ сборщика APK-файлов для Alpine Linux 3.16.9"
|
||
|
||
# Задаем стандартные значения через переменные окружения
|
||
ENV USER=builder \
|
||
PACKAGE_DIR=/package \
|
||
NFS_SERVER= \
|
||
NFS_PATH= \
|
||
PRIVATE_KEY= \
|
||
PUBLIC_KEY= \
|
||
REPODEST_DIR=
|
||
|
||
# Копируем скрипт запуска в контейнер
|
||
COPY --chmod=0755 ../apk-build /usr/bin/apk-build
|
||
|
||
# Устанавливаем необходимые пакеты для сборки APK и NFS
|
||
RUN <<EOF
|
||
echo "http://mirror.yandex.ru/mirrors/alpine/v3.16/main" > /etc/apk/repositories
|
||
echo "http://mirror.yandex.ru/mirrors/alpine/v3.16/community" >> /etc/apk/repositories
|
||
apk update
|
||
apk upgrade --no-cache
|
||
apk add --no-cache alpine-sdk abuild sudo git nfs-utils
|
||
adduser -D builder
|
||
addgroup builder abuild
|
||
echo "builder ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/builder
|
||
EOF
|
||
|
||
# Переключаемся на пользователя builder
|
||
USER builder
|
||
|
||
# Создаем рабочую директорию
|
||
WORKDIR /home/builder/package
|
||
|
||
# Указываем точку входа для CI/CD
|
||
ENTRYPOINT ["/usr/bin/apk-build"]
|
||
|
||
# Указываем команду по умолчанию с переменными окружения
|
||
CMD ["-p", "/package"]
|