Фикс с ключами

This commit is contained in:
Alexander Zhirov 2025-04-26 23:29:31 +03:00
parent 72901d7978
commit 1c6fa0002f
4 changed files with 27 additions and 17 deletions

View file

@ -24,6 +24,7 @@ usage() {
: "${PRIVATE_KEY:=}"
: "${PUBLIC_KEY:=}"
: "${REPODEST_DIR:=}"
: "${NAME_KEY:=builder}"
PACKAGES_DIR="/home/builder/packages"
NFS_ENABLED=0
@ -36,6 +37,7 @@ while [ $# -gt 0 ]; do
-r) PRIVATE_KEY="$2"; shift 2 ;;
-u) PUBLIC_KEY="$2"; shift 2 ;;
-d) REPODEST_DIR="$2"; shift 2 ;;
-k) NAME_KEY="$2"; shift 2 ;;
*) echo "🚫 Ошибка: Неизвестный флаг $1"; usage ;;
esac
done
@ -80,49 +82,45 @@ if [ -n "$PRIVATE_KEY" ] || [ -n "$PUBLIC_KEY" ]; then
# Создаем директорию .abuild
mkdir -p /home/builder/.abuild
# Записываем abuild.conf
echo 'PACKAGER_PRIVKEY="/home/builder/.abuild/packager.rsa"' > /home/builder/.abuild/abuild.conf
echo "PACKAGER_PRIVKEY=\"/home/builder/.abuild/$NAME_KEY.rsa\"" > /home/builder/.abuild/abuild.conf
if [ $? -ne 0 ]; then
echo "🚫 Ошибка при записи abuild.conf"
exit 1
fi
# Записываем приватный ключ
echo "$PRIVATE_KEY" > /home/builder/.abuild/packager.rsa
echo "$PRIVATE_KEY" > /home/builder/.abuild/$NAME_KEY.rsa
if [ $? -ne 0 ]; then
echo "🚫 Ошибка при записи приватного ключа"
exit 1
fi
# Записываем публичный ключ
echo "$PUBLIC_KEY" > /home/builder/.abuild/packager.rsa.pub
echo "$PUBLIC_KEY" > /home/builder/.abuild/$NAME_KEY.rsa.pub
if [ $? -ne 0 ]; then
echo "🚫 Ошибка при записи публичного ключа"
exit 1
fi
# Устанавливаем права доступа
chmod 600 /home/builder/.abuild/packager.rsa
chmod 644 /home/builder/.abuild/packager.rsa.pub /home/builder/.abuild/abuild.conf
chmod 600 /home/builder/.abuild/$NAME_KEY.rsa
chmod 644 /home/builder/.abuild/$NAME_KEY.rsa.pub /home/builder/.abuild/abuild.conf
# Копирование ключа для apk менеджера
sudo cp -v /home/builder/.abuild/$NAME_KEY.rsa.pub /etc/apk/keys/
echo "✅ Ключи abuild успешно настроены"
else
# Если ключи не переданы, проверяем существующие или генерируем новые
if [ ! -f "/home/builder/.abuild/abuild.conf" ]; then
echo "🔑 Генерирую новые ключи для abuild..."
abuild-keygen -a -i -n
echo "/home/builder/.abuild/$NAME_KEY.rsa" | abuild-keygen -a -i
if [ $? -ne 0 ]; then
echo "🚫 Ошибка при генерации ключей abuild"
exit 1
fi
echo "✅ Ключи abuild сгенерированы"
else
sudo cp -v /home/builder/.abuild/$NAME_KEY.rsa.pub /etc/apk/keys/
echo "✅ Использую существующие ключи abuild"
fi
fi
cat /home/builder/.abuild/*.rsa.pub
cat /home/builder/.abuild/*.rsa
cat /home/builder/.abuild/abuild.conf
# Копирование ключа для apk менеджера
sudo cp -v /home/builder/.abuild/*.rsa.pub /etc/apk/keys/
# Монтируем NFS-ресурс, если включен
if [ "$NFS_ENABLED" -eq 1 ]; then
echo "🔌 Монтирую NFS-ресурс $NFS_SERVER:$NFS_PATH в $PACKAGES_DIR..."

10
build.sh Executable file
View file

@ -0,0 +1,10 @@
#!/bin/sh
CUR_SCRIPT="$0"
CUR_DIR="$(dirname "$CUR_SCRIPT")"
APK_BUILD_SCRIPT="$CUR_DIR/apk-build"
cp "$APK_BUILD_SCRIPT" "$CUR_DIR/v3.21"
cd "$CUR_DIR/v3.21"
docker build . -t apk-builder:3.21-r1

View file

@ -12,10 +12,11 @@ ENV USER=builder \
NFS_PATH= \
PRIVATE_KEY= \
PUBLIC_KEY= \
REPODEST_DIR=
REPODEST_DIR= \
NAME_KEY=builder
# Копируем скрипт запуска в контейнер
COPY ../apk-build /usr/bin/apk-build
COPY apk-build /usr/bin/apk-build
# Устанавливаем необходимые пакеты для сборки APK и NFS
RUN echo "http://mirror.yandex.ru/mirrors/alpine/v3.16/main" > /etc/apk/repositories && \

View file

@ -12,10 +12,11 @@ ENV USER=builder \
NFS_PATH= \
PRIVATE_KEY= \
PUBLIC_KEY= \
REPODEST_DIR=
REPODEST_DIR= \
NAME_KEY=builder
# Копируем скрипт запуска в контейнер
COPY --chmod=0755 ../apk-build /usr/bin/apk-build
COPY --chmod=0755 apk-build /usr/bin/apk-build
# Устанавливаем необходимые пакеты для сборки APK и NFS
RUN <<EOF