lxc-alpine.in revision 2a9a0a08077d88ee1d70ca46ca122216f3d1c89a
c273fbbb7863507673f695bc85709c0cb715011fTim Reddehase cp -r ${keys_dir:-/etc/apk/keys} "$rootfs"/etc/apk/
5ec1c6ff5da427d945d7fb708567ce3526c4c741Tim Reddehase echo "$repository" > "$rootfs"/etc/apk/repositories
98ba1c38b1cce99ecc61117259f2ae05ffe98469Tim Reddehase cp /etc/apk/repositories "$rootfs"/etc/apk/repositories || return 1
81a6387a4ab56a24194ecbabd6609c6bcca568b7Tim Reddehase ${APK:-apk} add -U --initdb --root $rootfs alpine-base
6f84d8dbc4edca35b7e69c8296a257ea17e3b74fTim Reddehase::sysinit:/sbin/rc sysinit
10be32b36246121321399ec3ab26d4d723d550e3Tim Reddehase::wait:/sbin/rc default
10be32b36246121321399ec3ab26d4d723d550e3Tim Reddehasetty1:12345:respawn:/sbin/getty 38400 tty1
10be32b36246121321399ec3ab26d4d723d550e3Tim Reddehase::ctrlaltdel:/sbin/reboot
10be32b36246121321399ec3ab26d4d723d550e3Tim Reddehase::shutdown:/sbin/rc shutdown
10be32b36246121321399ec3ab26d4d723d550e3Tim Reddehase grep nameserver /etc/resolv.conf > "$rootfs/etc/resolv.conf"
81a6387a4ab56a24194ecbabd6609c6bcca568b7Tim Reddehaseiface lo inet loopback
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehaseiface eth0 inet dhcp
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehase# mknod -m 600 "$rootfs/dev/initctl" p
4949048bda09e116ee3627383e831455954cbe41Tim Reddehase ln -s /etc/init.d/syslog "$rootfs"/etc/runlevels/default/syslog
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehase grep -q "^lxc.rootfs" $path/config 2>/dev/null \
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehase || echo "lxc.rootfs = $rootfs" >> $path/config
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehaselxc.pts = 1024
4949048bda09e116ee3627383e831455954cbe41Tim Reddehaselxc.utsname = $hostname
db8aaeeeb3b24f487a5d02c60d18e96e55f6ba85Tim Reddehase# When using LXC with apparmor, uncomment the next line to run unconfined:
4949048bda09e116ee3627383e831455954cbe41Tim Reddehase#lxc.aa_profile = unconfined
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehase# network interface
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehaselxc.network.name = eth0
db8aaeeeb3b24f487a5d02c60d18e96e55f6ba85Tim Reddehaselxc.network.type = veth
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehaselxc.network.flags = up
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehase# enable for bridging
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehase#lxc.network.link = br0
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehase#lxc.network.ipv4 = n.n.n.n
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehase#lxc.network.ipv4.gateway = auto
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehaselxc.cgroup.devices.deny = a
4949048bda09e116ee3627383e831455954cbe41Tim Reddehase# /dev/null and zero
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 1:3 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 1:5 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 5:1 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 5:0 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 4:0 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 4:1 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksa# /dev/{,u}random
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 1:9 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 1:8 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 136:* rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 5:2 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksalxc.cgroup.devices.allow = c 254:0 rwm
1f3a52128a4c9a5830936e25b071ce6a81fec1beEugen Kuksa# mounts point
273b30f33fe1a753893887c8eb94f8078cc96928Eugen Kuksalxc.mount.entry=proc proc proc nodev,noexec,nosuid 0 0
9ade3006d75c25cfa77d51526e4a6cdd2370be5cEugen Kuksalxc.mount.entry=run run tmpfs nodev,noexec,nosuid,relatime,size=1m,mode=0755 0 0
9ade3006d75c25cfa77d51526e4a6cdd2370be5cEugen Kuksalxc.mount.entry=none dev/pts devpts gid=5,mode=620 0 0
b7fe8f3179594e2ebccf6ee9f562e9c2e17aab96Eugen Kuksa echo "Usage: $(basename $0) [-h|--help] -p|--path <path> -n|--name <name>" >&2
23f0ab4a423943eb59109df37074ef0c330d07c0Tim Reddehase # split --myopt=foo=bar into --myopt foo=bar
503ccb65bd740225668eb51be966d60fb4ae29e1Tim Reddehase # split opts -abc into -a -b -c
503ccb65bd740225668eb51be966d60fb4ae29e1Tim Reddehase set -- $(echo "${opt#-}" | sed 's/\(.\)/ -\1/g') "$@"
503ccb65bd740225668eb51be966d60fb4ae29e1Tim Reddehaseif [ -z "${path}" ]; then
575f7ed30e509f1a650d73927f607e7b5b11a6dbEugen Kuksarootfs=`awk -F= '$1 ~ /^lxc.rootfs/ { print $2 }' "$path/config" 2>/dev/null`
575f7ed30e509f1a650d73927f607e7b5b11a6dbEugen Kuksaif [ -z "$rootfs" ]; then
575f7ed30e509f1a650d73927f607e7b5b11a6dbEugen Kuksainstall_alpine "$rootfs" || die "Failed to install rootfs for $name"
575f7ed30e509f1a650d73927f607e7b5b11a6dbEugen Kuksaconfigure_alpine "$rootfs" "$name" || die "Failed to configure $name"