Browse Source

added support for crims0n/minios-live-container (hub.docker.com)

master
crims0n 5 years ago
parent
commit
b41c22cefc
  1. 9
      backup
  2. 16
      docker/Dockerfile.minios-live
  3. 51
      docker/Dockerfile.minios-live.0@install.sh
  4. 75
      docker/Dockerfile2.py
  5. 2
      docker/build.sh
  6. 26
      linux-live/buildconfig

9
backup

@ -0,0 +1,9 @@
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M)
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
PARENT_DIR="$(dirname "$SCRIPT_DIR")"
mkdir $PARENT_DIR/backup
rm -f $PARENT_DIR/backup/minios-live-current.tar.gz
tar -czf $PARENT_DIR/backup/minios-live-current.tar.gz --exclude .git --exclude "*.log" --exclude .script_version .
cp $PARENT_DIR/backup/minios-live-current.tar.gz $PARENT_DIR/backup/minios-live-$DATE.tar.gz

16
docker/Dockerfile.minios-live

@ -0,0 +1,16 @@
FROM ubuntu:focal
COPY Dockerfile.minios-live.0@install.sh /opt/install.sh
RUN chmod +x /opt/install.sh
RUN /opt/install.sh
RUN rm /opt/install.sh
ENV LOGPATH="/var/log"
ENV BUILD_TEST_ISO="0"
ENV DEV_SYSTEM="0"
ENV CREATE_BACKUP="0"
ENV DEBIAN_FRONTEND_TYPE="noninteractive"
ENV APT_CMD="apt-get"
ENV APT_OPTIONS="-y"
VOLUME /build
WORKDIR /build
CMD ["/build/minios-live/autoinstall", "-"]

51
docker/Dockerfile.minios-live.0@install.sh

@ -0,0 +1,51 @@
#!/usr/bin/env bash
set -e -o xtrace
function _failure() {
echo -e "\r\nERROR: bash script [ /opt/install.sh ] failed at line $1: \"$2\""
}
trap '_failure ${LINENO} "$BASH_COMMAND"' ERR
# ############################################################################ #
apt-get update -y
apt-get install -y wget patch sudo debootstrap xorriso
touch /minios-live-container
cd /opt/
wget -c http://ru.archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.123ubuntu2_all.deb
dpkg -i /opt/debootstrap_1.0.123ubuntu2_all.deb
rm -f /opt/debootstrap_1.0.123ubuntu2_all.deb
cat <<'EOF' >/usr/share/debootstrap/functions.diff
--- functions 2020-10-23 20:42:16.000000000 +0300
+++ functions.new 2021-01-16 23:22:25.612064306 +0300
@@ -1176,7 +1176,9 @@
umount_on_exit /dev/shm
umount_on_exit /proc
umount_on_exit /proc/bus/usb
- umount "$TARGET/proc" 2>/dev/null || true
+ if [ ! -h "$TARGET/proc" ]; then
+ umount "$TARGET/proc" 2>/dev/null || true
+ fi
# some container environment are used at second-stage, it already treats /proc and so on
if [ -z "$(ls -A "$TARGET/proc")" ]; then
EOF
cd /usr/share/debootstrap/
patch </usr/share/debootstrap/functions.diff
apt-get clean
find /var/log/ -type f | xargs rm -f
rm -f /var/backups/*
rm -f /var/cache/ldconfig/*
rm -f /var/cache/debconf/*
rm -f /var/cache/fontconfig/*
rm -f /var/cache/apt/archives/*.deb
rm -f /var/cache/apt/*.bin
rm -f /var/cache/debconf/*-old
rm -f /var/lib/apt/extended_states
rm -f /var/lib/apt/lists/*Packages
rm -f /var/lib/apt/lists/*Translation*
rm -f /var/lib/apt/lists/*InRelease
rm -f /var/lib/apt/lists/deb.*
rm -f /var/lib/dpkg/*-old

75
docker/Dockerfile2.py

@ -0,0 +1,75 @@
#!/usr/bin/python3
# Dockerfile.py
import sys
import logging
import pydocker # github.com/jen-soft/pydocker
logging.getLogger('').setLevel(logging.INFO)
logging.root.addHandler(logging.StreamHandler(sys.stdout))
class DockerFile(pydocker.DockerFile):
""" add here your custom features """
d = DockerFile(base_img='ubuntu:focal', name='crims0n/minios-live:latest')
d.RUN_bash_script('/opt/install.sh', r'''
apt-get update -y
apt-get install -y wget patch sudo debootstrap xorriso
touch /minios-live-container
cd /opt/
wget -c http://ru.archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.123ubuntu2_all.deb
dpkg -i /opt/debootstrap_1.0.123ubuntu2_all.deb
rm -f /opt/debootstrap_1.0.123ubuntu2_all.deb
cat <<'EOF' >/usr/share/debootstrap/functions.diff
--- functions 2020-10-23 20:42:16.000000000 +0300
+++ functions.new 2021-01-16 23:22:25.612064306 +0300
@@ -1176,7 +1176,9 @@
umount_on_exit /dev/shm
umount_on_exit /proc
umount_on_exit /proc/bus/usb
- umount "$TARGET/proc" 2>/dev/null || true
+ if [ ! -h "$TARGET/proc" ]; then
+ umount "$TARGET/proc" 2>/dev/null || true
+ fi
# some container environment are used at second-stage, it already treats /proc and so on
if [ -z "$(ls -A "$TARGET/proc")" ]; then
EOF
cd /usr/share/debootstrap/
patch </usr/share/debootstrap/functions.diff
apt-get clean
find /var/log/ -type f | xargs rm -f
rm -f /var/backups/*
rm -f /var/cache/ldconfig/*
rm -f /var/cache/debconf/*
rm -f /var/cache/fontconfig/*
rm -f /var/cache/apt/archives/*.deb
rm -f /var/cache/apt/*.bin
rm -f /var/cache/debconf/*-old
rm -f /var/lib/apt/extended_states
rm -f /var/lib/apt/lists/*Packages
rm -f /var/lib/apt/lists/*Translation*
rm -f /var/lib/apt/lists/*InRelease
rm -f /var/lib/apt/lists/deb.*
rm -f /var/lib/dpkg/*-old
''')
d.ENV = 'LOGPATH="/var/log"'
d.ENV = 'BUILD_TEST_ISO="0"'
d.ENV = 'DEV_SYSTEM="0"'
d.ENV = 'CREATE_BACKUP="0"'
d.ENV = 'DEBIAN_FRONTEND_TYPE="noninteractive"'
d.ENV = 'APT_CMD="apt-get"'
d.ENV = 'APT_OPTIONS="-y"'
d.VOLUME = '/build'
d.WORKDIR = '/build'
# d.ENTRYPOINT = ["/opt/www-data/entrypoint.sh"]
d.CMD = ["/build/minios-live/autoinstall", "-"]
d.build_img()

2
docker/build.sh

@ -0,0 +1,2 @@
#!/bin/bash
sudo docker build -t minios-live -f Dockerfile.minios-live .

26
linux-live/buildconfig

@ -0,0 +1,26 @@
#!/bin/bash
LOGPATH="/var/log"
# default is output to log. you can use OUTPUT="/dev/stdout" if you want to route events to standard output.
#OUTPUT="$LOGPATH/$LIVEKITNAME.log"
OUTPUT="/dev/stdout"
# if = "1", creates a second iso with a constant filename
# если ="1", создаёт второй iso с постоянным именем файла
BUILD_TEST_ISO="1"
# if = "1", creates a copy of minios-live in chroot /opt
# если ="1", создаёт копию minios-live в chroot /opt
DEV_SYSTEM="0"
# if ="1", creates backup in parent folder
# если ="1", создаёт резервную копию в родительской папке
CREATE_BACKUP="0"
DEBIAN_FRONTEND_TYPE="noninteractive"
#DEBIAN_FRONTEND_TYPE="ncurses"
APT_CMD="apt-get"
APT_OPTIONS="-y" #--no-install-recommends"
Loading…
Cancel
Save