diff --git a/build/Makefile b/build/Makefile index 1fbba35..41f9758 100644 --- a/build/Makefile +++ b/build/Makefile @@ -5,7 +5,7 @@ FILE = $(DIR)/Dockerfile FROM = ubuntu:trusty PORT = 8001 MODE = minimal -ARGS = --no-cache +ARGS = --no-cache --rm=true include $(wildcard $(HOME)/build/make/*.mk) @@ -36,7 +36,7 @@ build: prepare $(call script,cleanup) @echo 'CMD ["/opt/init"]' >> ${FILE} @$(shell cd ${BASE} && python -m SimpleHTTPServer $(PORT) > /dev/null &) - @docker build -t $(NAME):$(VERSION) --rm=true $(ARGS) ${DIR} + @docker build -t $(NAME):$(VERSION) $(ARGS) ${DIR} @kill -9 $(lsof -i tcp:8001 -t) prepare: diff --git a/build/config b/build/config index 97e78f5..b5b857d 100644 --- a/build/config +++ b/build/config @@ -2,7 +2,6 @@ export LC_ALL=C export DEBIAN_FRONTEND=noninteractive apt_get_install='apt-get install -y --no-install-recommends' -minimal_apt_get_install=$apt_get_install apt_get_install_permanent() { echo $@ >> /build/permanent diff --git a/build/make/base.mk b/build/make/base.mk index d48d16c..cb6a532 100644 --- a/build/make/base.mk +++ b/build/make/base.mk @@ -1,6 +1,5 @@ base: cron syslog sshd hosts -# $(call script,boot) -# $(call script,init) -# $(call script,runit) -# $(call script,logrotate) -# $(call script,utilities) \ No newline at end of file + $(call script,init) + $(call script,runit) + $(call script,logrotate) + $(call script,utilities) \ No newline at end of file diff --git a/build/scripts/chrome.sh b/build/scripts/chrome.sh index ac2a6b5..9f73841 100644 --- a/build/scripts/chrome.sh +++ b/build/scripts/chrome.sh @@ -4,7 +4,7 @@ source /build/config set -x ## Chrome dependencies -$minimal_apt_get_install gconf-service libasound2 libatk1.0-0 libcairo2 libcap2 libcups2 libcurl3 libfontconfig1 libgdk-pixbuf2.0-0 libgtk2.0-0 libnspr4 libnss3 libpango1.0-0 librtmp0 libxss1 libxtst6 xdg-utils +apt_get_install_permanent gconf-service libasound2 libatk1.0-0 libcairo2 libcap2 libcups2 libcurl3 libfontconfig1 libgdk-pixbuf2.0-0 libgtk2.0-0 libnspr4 libnss3 libpango1.0-0 librtmp0 libxss1 libxtst6 xdg-utils ## Chrome mkdir -p /usr/share/icons/hicolor diff --git a/build/scripts/cleanup.sh b/build/scripts/cleanup.sh index 0e7f525..4d03651 100644 --- a/build/scripts/cleanup.sh +++ b/build/scripts/cleanup.sh @@ -3,10 +3,14 @@ set -e source /build/config set -x +## Remove temporary packages for minimal builds +if [ $MODE == "minimal" ]; then + cat /build/temporary | xargs apt-get -y autoremove +fi -echo $MODE +## Clean apt files apt-get clean -# rm -rf /build +rm -rf /build rm -rf /tmp/* /var/tmp/* -# rm -rf /var/lib/apt/lists/* -# rm -f /etc/dpkg/dpkg.cfg.d/02apt-speedup +rm -rf /var/lib/apt/lists/* +rm -f /etc/dpkg/dpkg.cfg.d/02apt-speedup diff --git a/build/scripts/compile.sh b/build/scripts/compile.sh index 1cebd24..7143218 100644 --- a/build/scripts/compile.sh +++ b/build/scripts/compile.sh @@ -4,4 +4,4 @@ source /build/config set -x ## Often used tools -$minimal_apt_get_install gcc make automake libtool +apt_get_install_temporary gcc make automake libtool diff --git a/build/scripts/firefox.sh b/build/scripts/firefox.sh index a6326c6..148395c 100644 --- a/build/scripts/firefox.sh +++ b/build/scripts/firefox.sh @@ -4,7 +4,7 @@ source /build/config set -x ## Chrome dependencies -$minimal_apt_get_install firefox +apt_get_install_permanent firefox ## Pulseaudio script echo "PULSE_SERVER=host firefox" > /opt/firefox diff --git a/build/scripts/gmrender.sh b/build/scripts/gmrender.sh index 8a0944a..ad37083 100644 --- a/build/scripts/gmrender.sh +++ b/build/scripts/gmrender.sh @@ -4,7 +4,7 @@ source /build/config set -x # GMediaRender dependencies -$minimal_apt_get_install libupnp-dev libgstreamer0.10-dev \ +apt_get_install_permanent libupnp-dev libgstreamer0.10-dev \ gstreamer0.10-plugins-base gstreamer0.10-plugins-good \ gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly \ gstreamer0.10-ffmpeg \ diff --git a/build/scripts/hamachi.sh b/build/scripts/hamachi.sh index b28f3a3..b818a4b 100644 --- a/build/scripts/hamachi.sh +++ b/build/scripts/hamachi.sh @@ -4,7 +4,7 @@ source /build/config set -x ## Hamachi dependency -$minimal_apt_get_install lsb-core net-tools socat strace +apt_get_install_permanent lsb-core net-tools socat strace ## Hamachi cd /opt diff --git a/build/scripts/logrotate.sh b/build/scripts/logrotate.sh index 173ffd6..69eec12 100644 --- a/build/scripts/logrotate.sh +++ b/build/scripts/logrotate.sh @@ -4,4 +4,4 @@ source /build/config set -x ## Install logrotate -$minimal_apt_get_install logrotate \ No newline at end of file +apt_get_install_permanent logrotate \ No newline at end of file diff --git a/build/scripts/minidlna.sh b/build/scripts/minidlna.sh index 8e12343..ebb8675 100644 --- a/build/scripts/minidlna.sh +++ b/build/scripts/minidlna.sh @@ -4,7 +4,7 @@ source /build/config set -x # MiniDLNA dependencies -$minimal_apt_get_install gettext libavutil-dev libavcodec-dev libavformat-dev libjpeg-dev libsqlite3-dev libexif-dev libid3tag0-dev libogg-dev libvorbis-dev libFLAC-dev +apt_get_install_permanent gettext libavutil-dev libavcodec-dev libavformat-dev libjpeg-dev libsqlite3-dev libexif-dev libid3tag0-dev libogg-dev libvorbis-dev libFLAC-dev export MINIDLNA_VERSION=1.1.1 export MINIDLNA_CONFIG=/host/etc/minidlna.conf diff --git a/build/scripts/prepare.sh b/build/scripts/prepare.sh index fc0ad79..a3f5f7d 100644 --- a/build/scripts/prepare.sh +++ b/build/scripts/prepare.sh @@ -31,13 +31,13 @@ dpkg-divert --local --rename --add /usr/bin/ischroot ln -sf /bin/true /usr/bin/ischroot ## Install HTTPS support for APT -$minimal_apt_get_install apt-transport-https +apt_get_install_permanent apt-transport-https ## Upgrade all packages -apt-get dist-upgrade -y --no-install-recommends +#apt-get dist-upgrade -y --no-install-recommends ## Fix locale -$minimal_apt_get_install language-pack-en +apt_get_install_permanent language-pack-en locale-gen en_US ## Create directory for boot scripts diff --git a/build/scripts/pulseaudio.sh b/build/scripts/pulseaudio.sh index c8ad7d5..462074d 100644 --- a/build/scripts/pulseaudio.sh +++ b/build/scripts/pulseaudio.sh @@ -4,7 +4,7 @@ source /build/config set -x ## Pulseaudio -$minimal_apt_get_install pulseaudio +apt_get_install_permanent pulseaudio ## Setup environment sed -i "1iexport PULSE_SERVER=host" /root/.profile \ No newline at end of file diff --git a/build/scripts/redis.sh b/build/scripts/redis.sh index 2c23089..e7873a2 100644 --- a/build/scripts/redis.sh +++ b/build/scripts/redis.sh @@ -4,7 +4,7 @@ source /build/config set -x ## Redis -$minimal_apt_get_install redis-server +apt_get_install_permanent redis-server export REDIS_CONFIG=/etc/redis/redis.conf export REDIS_LOG=/host/var/log/redis/redis.log diff --git a/build/scripts/runit.sh b/build/scripts/runit.sh index 8919aa2..7104247 100644 --- a/build/scripts/runit.sh +++ b/build/scripts/runit.sh @@ -4,4 +4,4 @@ source /build/config set -x ## Install runit -$minimal_apt_get_install runit +apt_get_install_permanent runit diff --git a/build/scripts/sshd.sh b/build/scripts/sshd.sh index 9c56382..a986470 100644 --- a/build/scripts/sshd.sh +++ b/build/scripts/sshd.sh @@ -4,7 +4,7 @@ source /build/config set -x ## Install the SSH server -$minimal_apt_get_install openssh-server +apt_get_install_permanent openssh-server mkdir /var/run/sshd ## Install root key @@ -19,7 +19,7 @@ ssh-keygen -t rsa -N "" -f id_rsa cat /opt/id_rsa.pub >> "$AUTHORIZED_KEYS" ## X11 forwarding -$minimal_apt_get_install xauth +apt_get_install_permanent xauth ## Setup environment sed -i "1iexport HOME=/root" /root/.profile diff --git a/build/scripts/syslog.sh b/build/scripts/syslog.sh index 0327b08..7ebca8d 100644 --- a/build/scripts/syslog.sh +++ b/build/scripts/syslog.sh @@ -4,6 +4,6 @@ source /build/config set -x ## Install a syslog daemon -$minimal_apt_get_install syslog-ng-core +apt_get_install_permanent syslog-ng-core mkdir -p /var/lib/syslog-ng sed -i "s/^\(#SYSLOGNG_OPTS=\).*$/\1\"--no-caps --default-modules=affile,afprog,afsocket,afuser,basicfuncs,csvparser,dbparser,syslogformat\"/" /etc/default/syslog-ng diff --git a/build/scripts/upnpproxy.sh b/build/scripts/upnpproxy.sh index 568607f..b5546cd 100644 --- a/build/scripts/upnpproxy.sh +++ b/build/scripts/upnpproxy.sh @@ -4,7 +4,7 @@ source /build/config set -x ## UPnP Proxy dependency -$minimal_apt_get_install uuid-dev +apt_get_install_permanent uuid-dev ## UPnP Proxy cd opt diff --git a/build/scripts/utilities.sh b/build/scripts/utilities.sh index 76c7dab..8191f80 100644 --- a/build/scripts/utilities.sh +++ b/build/scripts/utilities.sh @@ -4,7 +4,7 @@ source /build/config set -x ## Often used tools -$minimal_apt_get_install wget curl python-pip git inetutils-ping telnet +apt_get_install_temporary curl python-pip git inetutils-ping telnet ## Often used python modules pip install argparse