| ... | ... |
@@ -9,6 +9,8 @@ usage() {
|
| 9 | 9 |
echo >&2 " $mkimg -t someuser/ubuntu debootstrap --include=ubuntu-minimal trusty" |
| 10 | 10 |
echo >&2 " $mkimg -t someuser/busybox busybox-static" |
| 11 | 11 |
echo >&2 " $mkimg -t someuser/centos:5 rinse --distribution centos-5" |
| 12 |
+ echo >&2 " $mkimg -t someuser/mageia:4 mageia-urpmi --version=4" |
|
| 13 |
+ echo >&2 " $mkimg -t someuser/mageia:4 mageia-urpmi --version=4 --mirror=http://somemirror/" |
|
| 12 | 14 |
exit 1 |
| 13 | 15 |
} |
| 14 | 16 |
|
| 15 | 17 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,79 @@ |
| 0 |
+#!/usr/bin/env bash |
|
| 1 |
+# |
|
| 2 |
+# Needs to be run from Mageia 4 or greater for kernel support for docker. |
|
| 3 |
+# |
|
| 4 |
+# Mageia 4 does not have docker available in official repos, so please |
|
| 5 |
+# install and run the docker binary manually. |
|
| 6 |
+# |
|
| 7 |
+# Tested working versions are for Mageia 2 onwards (inc. cauldron). |
|
| 8 |
+# |
|
| 9 |
+set -e |
|
| 10 |
+ |
|
| 11 |
+rootfsDir="$1" |
|
| 12 |
+shift |
|
| 13 |
+ |
|
| 14 |
+optTemp=$(getopt --options '+v:,m:' --longoptions 'version:,mirror:' --name mageia-urpmi -- "$@") |
|
| 15 |
+eval set -- "$optTemp" |
|
| 16 |
+unset optTemp |
|
| 17 |
+ |
|
| 18 |
+installversion= |
|
| 19 |
+mirror= |
|
| 20 |
+while true; do |
|
| 21 |
+ case "$1" in |
|
| 22 |
+ -v|--version) installversion="$2" ; shift 2 ;; |
|
| 23 |
+ -m|--mirror) mirror="$2" ; shift 2 ;; |
|
| 24 |
+ --) shift ; break ;; |
|
| 25 |
+ esac |
|
| 26 |
+done |
|
| 27 |
+ |
|
| 28 |
+if [ -z $installversion ]; then |
|
| 29 |
+ # Attempt to match host version |
|
| 30 |
+ if [ -r /etc/mageia-release ]; then |
|
| 31 |
+ installversion="$(sed 's/^[^0-9\]*\([0-9.]\+\).*$/\1/' /etc/mageia-release)" |
|
| 32 |
+ else |
|
| 33 |
+ echo "Error: no version supplied and unable to detect host mageia version" |
|
| 34 |
+ exit 1 |
|
| 35 |
+ fi |
|
| 36 |
+fi |
|
| 37 |
+ |
|
| 38 |
+if [ -z $mirror ]; then |
|
| 39 |
+ # No mirror provided, default to mirrorlist |
|
| 40 |
+ mirror="--mirrorlist https://mirrors.mageia.org/api/mageia.$installversion.x86_64.list" |
|
| 41 |
+fi |
|
| 42 |
+ |
|
| 43 |
+( |
|
| 44 |
+ set -x |
|
| 45 |
+ urpmi.addmedia --distrib \ |
|
| 46 |
+ $mirror \ |
|
| 47 |
+ --urpmi-root "$rootfsDir" |
|
| 48 |
+ urpmi basesystem-minimal urpmi \ |
|
| 49 |
+ --auto \ |
|
| 50 |
+ --no-suggests \ |
|
| 51 |
+ --urpmi-root "$rootfsDir" \ |
|
| 52 |
+ --root "$rootfsDir" |
|
| 53 |
+) |
|
| 54 |
+ |
|
| 55 |
+( |
|
| 56 |
+ # Clean cruft to reduce image size - stolen and modifed from .febootstrap-minimize |
|
| 57 |
+ set -x |
|
| 58 |
+ cd "$rootfsDir" |
|
| 59 |
+ # locales |
|
| 60 |
+ rm -rf usr/{{lib,share}/locale,{lib,lib64}/gconv,bin/localedef,sbin/build-locale-archive}
|
|
| 61 |
+ # docs |
|
| 62 |
+ rm -rf usr/share/{man,doc,info,gnome/help}
|
|
| 63 |
+ # cracklib |
|
| 64 |
+ rm -rf usr/share/cracklib |
|
| 65 |
+ # i18n |
|
| 66 |
+ rm -rf usr/share/i18n |
|
| 67 |
+ # sln |
|
| 68 |
+ rm -rf sbin/sln |
|
| 69 |
+ # ldconfig |
|
| 70 |
+ #rm -rf sbin/ldconfig |
|
| 71 |
+ rm -rf etc/ld.so.cache var/cache/ldconfig |
|
| 72 |
+ mkdir -p --mode=0755 var/cache/ldconfig |
|
| 73 |
+) |
|
| 74 |
+ |
|
| 75 |
+if [ -d "$rootfsDir/etc/sysconfig" ]; then |
|
| 76 |
+ # allow networking init scripts inside the container to work without extra steps |
|
| 77 |
+ echo 'NETWORKING=yes' > "$rootfsDir/etc/sysconfig/network" |
|
| 78 |
+fi |