небольшие правки

This commit is contained in:
Alexander Zhirov 2025-04-29 01:10:52 +03:00
parent a6734d8fdd
commit a495d9e3b2
5 changed files with 22 additions and 11 deletions

View file

@ -2,6 +2,17 @@
Образ предназначен для автоматизации настройки окружения для сборки пакетов в Alpine Linux. Он создаёт пользователя, настраивает права, подключает NFS-сервер (если указан), управляет ключами для подписи пакетов и выполняет сборку пакетов с помощью утилиты abuild.
- [Сборка образа](#сборка-образа)
- [Использование](#использование)
- [Опции](#опции)
- [Примеры сборки образа](#примеры-сборки-образа)
- [Использование образа](#использование-образа)
- [Параметры запуска](#параметры-запуска)
- [Монтирование директорий](#монтирование-директорий)
- [Что происходит при запуске](#что-происходит-при-запуске)
- [Примеры сборки пакета](#примеры-сборки-пакета)
- [Дополнительно](#дополнительно)
## Сборка образа
Скрипт `build.sh` предназначен для автоматизации сборки и, при необходимости, отправки Docker-образов в указанный registry. Скрипт поддерживает настройку имени образа, версии, базового образа, выбор Dockerfile, а также указание дополнительных репозиториев и параметров registry.
@ -23,7 +34,7 @@
- `-p, --port`: Порт registry (по умолчанию `5000`).
- `-h, --help`: Показать справку.
### Примеры использования:
### Примеры сборки образа:
1. **Простая сборка образа без отправки в registry**:
```bash
@ -127,7 +138,7 @@ docker run -it --rm \
- Выполняется команда `abuild -r` для сборки пакета.
- Собранные пакеты сохраняются в `/repository/<REPOSITORY_NAME_DIR>`.
### Примеры использования
### Примеры сборки пакета
#### 1. Минимальный запуск (без NFS и ключей)
Сборка пакета с использованием стандартных репозиториев и автоматической генерации ключей (без сохранения ключей):
@ -167,7 +178,7 @@ docker run -it --rm \
my-app:1.0.0
```
---
### Дополнительно
- **Сохранение ключей**: Если вы генерируете ключи внутри контейнера, сохраните их из директории `/keys` для повторного использования.
- **Повторное использование контейнера**: Используйте одну и ту же директорию `/keys` и `/repository` для сохранения ключей и пакетов между запусками.

View file

@ -6,10 +6,10 @@ usage() {
echo "🔧 Опции:"
echo " -n, --name Имя собираемого образа (обязательно)"
echo " -v, --version Версия собираемого образа в формате X.Y.Z (обязательно)"
echo " -b, --base-image-version Версия базового образа (обязательно)"
echo " -o, --old Использовать Dockerfile.20.10.20 (по умолчанию Dockerfile.27.3.1)"
echo " -b, --base-image-version Версия базового образа Alpine Linux (обязательно)"
echo " -o, --old Использовать метод сборки для устаревшей версии Docker"
echo " -R, --repositories Список репозиториев для сборки (через точку с запятой)"
echo " -r, --push-to-registry Адрес registry для отправки образов (например, registry.example.com)"
echo " -r, --push-to-registry Адрес registry для отправки образов"
echo " -p, --port Порт registry (по умолчанию 5000)"
echo " -h, --help Показать эту справку"
exit "$exit_code"

View file

@ -16,7 +16,7 @@ ENV BUILDER_USER=builder \
NFS_PORT=5000 \
NFS_PATH=
COPY build-apk /usr/bin/build-apk
COPY apk-builder /usr/bin/apk-builder
ARG REPOSITORIES
@ -26,6 +26,6 @@ RUN if [ ! -z "${REPOSITORIES}" ]; then \
apk update && \
apk upgrade --no-cache && \
apk add --no-cache build-base alpine-sdk abuild sudo git nfs-utils && \
chmod 0755 /usr/bin/build-apk
chmod 0755 /usr/bin/apk-builder
ENTRYPOINT ["/usr/bin/build-apk"]
ENTRYPOINT ["/usr/bin/apk-builder"]

View file

@ -16,7 +16,7 @@ ENV BUILDER_USER=builder \
NFS_PORT=5000 \
NFS_PATH=
COPY --chmod=0755 build-apk /usr/bin/build-apk
COPY --chmod=0755 apk-builder /usr/bin/apk-builder
ARG REPOSITORIES
@ -29,4 +29,4 @@ RUN <<EOF
apk add --no-cache build-base alpine-sdk abuild sudo git nfs-utils
EOF
ENTRYPOINT ["/usr/bin/build-apk"]
ENTRYPOINT ["/usr/bin/apk-builder"]