6 changed files with 179 additions and 0 deletions
@ -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 |
@ -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", "-"] |
@ -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 |
@ -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() |
@ -0,0 +1,2 @@ |
|||||
|
#!/bin/bash |
||||
|
sudo docker build -t minios-live -f Dockerfile.minios-live . |
@ -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…
Reference in new issue