Релиз 0.1.0
This commit is contained in:
		
						commit
						0ceb257fc7
					
				
					 3 changed files with 98 additions and 0 deletions
				
			
		
							
								
								
									
										14
									
								
								Dockerfile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Dockerfile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -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"]
 | 
				
			||||||
							
								
								
									
										35
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -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`)
 | 
				
			||||||
							
								
								
									
										49
									
								
								build
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								build
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue