1+ # syntax=docker/dockerfile:1
2+ # ------------------------------------------------------------------------------------#
3+ # https://hub.docker.com/r/pkgforge/debian-ix
4+ FROM debian:unstable
5+ ENV GIT_REPO="https://github.com/pg83/ix"
6+ # ENV GIT_REPO="https://github.com/stal-ix/ix"
7+ # ------------------------------------------------------------------------------------#
8+ # #Base Deps
9+ ENV DEBIAN_FRONTEND="noninteractive"
10+ RUN <<EOS
11+ # Base
12+ set +e
13+ export DEBIAN_FRONTEND="noninteractive"
14+ echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
15+ packages="apt-transport-https apt-utils autopoint bash bison ca-certificates coreutils curl dos2unix fdupes file findutils gettext git gnupg2 gperf jq locales locate moreutils nano ncdu p7zip-full rename rsync software-properties-common texinfo sudo tmux unzip util-linux xz-utils wget zip"
16+ # Install
17+ apt update -y -qq
18+ for pkg in $packages; do DEBIAN_FRONTEND="noninteractive" apt install -y --ignore-missing "$pkg" ; done
19+ # Install_Re
20+ for pkg in $packages; do DEBIAN_FRONTEND="noninteractive" apt install -y --ignore-missing "$pkg" ; done
21+ # Install Actual Deps
22+ packages="bash binutils build-essential coreutils curl findutils file g++ git grep jq libc-dev moreutils patchelf python3 rsync sed sudo strace tar tree wget xz-utils zstd"
23+ for pkg in $packages; do DEBIAN_FRONTEND="noninteractive" apt install -y --ignore-missing "$pkg" ; done
24+ hash -r 2>/dev/null || true
25+ # Checks
26+ command -v bash || exit 1
27+ command -v curl || exit 1
28+ command -v find || exit 1
29+ command -v rsync || exit 1
30+ command -v sudo || exit 1
31+ command -v tar || exit 1
32+ command -v wget || exit 1
33+ # Stats
34+ dpkg -l || true
35+ EOS
36+ # ------------------------------------------------------------------------------------#
37+ # #Addons
38+ RUN <<EOS
39+ set +e
40+ # askalono for Licenses
41+ wget --quiet --show-progress "https://bin.pkgforge.dev/$(uname -m)/askalono" -O "/usr/bin/askalono"
42+ chmod "a+x" "/usr/bin/askalono"
43+ # Eget for simplified releases
44+ wget --quiet --show-progress "https://bin.pkgforge.dev/$(uname -m)/eget" -O "/usr/bin/eget"
45+ chmod "a+x" "/usr/bin/eget"
46+ # Micro
47+ wget --quiet --show-progress "https://bin.pkgforge.dev/$(uname -m)/micro" -O "/usr/bin/micro"
48+ chmod "a+x" "/usr/bin/micro"
49+ # Soar
50+ wget --quiet --show-progress "https://bin.pkgforge.dev/$(uname -m)/soar" -O "/usr/bin/soar"
51+ chmod "a+x" "/usr/bin/soar"
52+ EOS
53+ # ------------------------------------------------------------------------------------#
54+ # #Stal/IX: https://github.com/pkgforge/devscripts/blob/main/Linux/install_ix.sh
55+ RUN <<EOS
56+ # Install
57+ cd "$(mktemp -d)" >/dev/null 2>&1
58+ curl -qfsSL "https://raw.githubusercontent.com/pkgforge/devscripts/refs/heads/main/Linux/install_ix.sh" -o "./install.sh" && chmod +x "./install.sh"
59+ bash "./install.sh"
60+ rm -rf "$(realpath .)" && cd - >/dev/null 2>&1 || true
61+ # Check
62+ if [ -z "${SYSTMP+x}" ] || [ -z "${SYSTMP##*[[:space:]]}" ]; then
63+ SYSTMP="$(dirname " $(mktemp -u)" | tr -d '[:space:]')"
64+ fi
65+ if [ ! -d "$SYSTMP" ]; then
66+ mkdir -p "$SYSTMP"
67+ fi
68+ if [ ! -s "${SYSTMP}/INITIALIZED" ]; then
69+ exit 1
70+ fi
71+ EOS
72+ # ------------------------------------------------------------------------------------#
73+ # #Config
74+ RUN <<EOS
75+ # Configure ENV
76+ curl -qfsSL "https://raw.githubusercontent.com/pkgforge/devscripts/refs/heads/main/Linux/.bashrc" -o "/etc/bash.bashrc"
77+ ln --symbolic --force "/etc/bash.bashrc" "/root/.bashrc" 2>/dev/null
78+ ln --symbolic --force "/etc/bash.bashrc" "/home/alpine/.bashrc" 2>/dev/null
79+ ln --symbolic --force "/etc/bash.bashrc" "/etc/bash/bashrc" 2>/dev/null
80+ EOS
81+ ENV GIT_ASKPASS="/bin/echo"
82+ ENV GIT_TERMINAL_PROMPT="0"
83+ # ------------------------------------------------------------------------------------#
84+ # END
0 commit comments