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"]
 |