Релиз 0.1.0
This commit is contained in:
commit
0ceb257fc7
|
@ -0,0 +1,14 @@
|
||||||
|
FROM alpine:3.20.0
|
||||||
|
LABEL maintainer="Alexander Zhirov <azhirov1991@gmail.com>"
|
||||||
|
COPY --chmod=0755 build /bin/build
|
||||||
|
RUN apk add --no-cache binutils rpm2cpio bash fuse wget patch file desktop-file-utils && \
|
||||||
|
wget https://git.zhirov.kz/alexander/appimage-builder/archive/0.2.0.tar.gz && \
|
||||||
|
tar xf 0.2.0.tar.gz -C / && rm 0.2.0.tar.gz && \
|
||||||
|
cd /appimage-builder/src && \
|
||||||
|
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage && \
|
||||||
|
wget https://github.com/AppImage/type2-runtime/releases/download/continuous/runtime-x86_64 && \
|
||||||
|
chmod +x appimagetool-x86_64.AppImage runtime-x86_64 && \
|
||||||
|
mkdir /input /output /cache
|
||||||
|
VOLUME /input /output /cache
|
||||||
|
ENV PATH $PATH:/appimage-builder/src
|
||||||
|
ENTRYPOINT ["build"]
|
|
@ -0,0 +1,35 @@
|
||||||
|
# AppImage Builder Docker
|
||||||
|
|
||||||
|
### Сборка образа
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://git.zhirov.kz/alexander/appimage-builder-docker.git
|
||||||
|
cd appimage-builder-docker
|
||||||
|
docker build --no-cache -t appimage-builder:0.2.0 .
|
||||||
|
```
|
||||||
|
|
||||||
|
### Подготовка
|
||||||
|
|
||||||
|
Перед сборкой необходимы три директории
|
||||||
|
- `input` - директория с рецептами сборки AppImage, [согласно иерархии AppImage Builder](https://git.zhirov.kz/alexander/appimage-builder/src/branch/master/src/apps)
|
||||||
|
- `cache` - директория для промежуточного буфера скачиваемых пакетов `deb`/`rpm`
|
||||||
|
- `output` - директория для готовых файлов AppImage и журнала сборки
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir output cache
|
||||||
|
```
|
||||||
|
|
||||||
|
### Запуск
|
||||||
|
|
||||||
|
```
|
||||||
|
docker run --rm \
|
||||||
|
--device /dev/fuse \
|
||||||
|
--cap-add SYS_ADMIN \
|
||||||
|
--security-opt apparmor:unconfined \
|
||||||
|
--volume ./input:/input \
|
||||||
|
--volume ./output:/output \
|
||||||
|
--volume ./cache:/cache \
|
||||||
|
appimage-builder:0.2.0 -u 1001 <apps>
|
||||||
|
```
|
||||||
|
|
||||||
|
где флаг `-u` указывает UID пользователя для установки прав (`user:group`) на полученные файлы в `output` и `cache` (по умолчанию `1000`)
|
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
key="${1}"
|
||||||
|
value="${2}"
|
||||||
|
case "${key}" in
|
||||||
|
-u|--user)
|
||||||
|
if [[ ! "${value}" =~ ^[0-9]+$ ]]; then
|
||||||
|
echo "Пользователь должен быть указан в числовом представлении"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
user="${value}"
|
||||||
|
echo "На готовые файлы будут установлены права ${user}:${user} в output и cache"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-t|--appimage-tool|-r|--appimage-runtime|-i|--input-path|-o|--output-path|-c|--cache-path|-l|--log-path)
|
||||||
|
echo "Переданы недопустимые флаги"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
echo -e "\n" \
|
||||||
|
"Использование: docker-container [ОПЦИИ]... [СПИСОК ПАКЕТОВ ДЛЯ СБОРКИ]\n" \
|
||||||
|
"Основные опции:\n" \
|
||||||
|
"\t-u\t--user\t\t\tУказать UID пользователя для установки прав на полученные файлы в output и cache\n" \
|
||||||
|
"Дополнительно:\n" \
|
||||||
|
"\t-h\t--help\t\t\tПоказать справку\n" \
|
||||||
|
"\t-v\t--version\t\tВерсия скрипта appimage-builder\n"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
bash|ash|sh)
|
||||||
|
${key}
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
apps+=("${key}")
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
[ -z "${apps}" ] && echo "Не указан ни один пакет для сборки AppImage" && exit 1
|
||||||
|
|
||||||
|
appimage-builder.sh -i /input -o /output -c /cache "${apps}"
|
||||||
|
|
||||||
|
if [ -v user ] && [ -n "${user}" ] ; then
|
||||||
|
chown -R -v ${user}:${user} /output /cache
|
||||||
|
else
|
||||||
|
chown -R -v 1000:1000 /output /cache
|
||||||
|
fi
|
Loading…
Reference in New Issue