diff options
author | nachoparker <nacho@ownyourbits.com> | 2017-09-21 19:57:11 +0300 |
---|---|---|
committer | nachoparker <nacho@ownyourbits.com> | 2017-11-05 15:36:15 +0300 |
commit | d0a839c09db4aab2c63cf832465880da537c9367 (patch) | |
tree | e909ff2079da0ef760204ae08c821e93d2ea92e4 /docker | |
parent | fa2279faa9c5db091b97376a323275ad1f368ef6 (diff) |
added docker-x86: nc and ncp for development. Update docker-armhf
Diffstat (limited to 'docker')
-rw-r--r-- | docker/build-container.sh | 38 | ||||
-rw-r--r-- | docker/debian-ncp/Dockerfile | 9 | ||||
-rwxr-xr-x | docker/debian-ncp/run-parts.sh (renamed from docker/miniraspbian/run-parts.sh) | 8 | ||||
-rw-r--r-- | docker/devel/Dockerfile | 5 | ||||
-rwxr-xr-x | docker/lamp/010-lamp-run.sh | 30 | ||||
-rw-r--r-- | docker/lamp/Dockerfile | 11 | ||||
-rw-r--r-- | docker/miniraspbian/Dockerfile | 11 | ||||
-rwxr-xr-x | docker/nextcloud/020-nextcloud-run.sh | 39 | ||||
-rw-r--r-- | docker/nextcloud/Dockerfile | 26 | ||||
-rwxr-xr-x | docker/nextcloudpi/000-ncp-run.sh | 21 | ||||
-rw-r--r-- | docker/nextcloudpi/Dockerfile | 51 | ||||
-rwxr-xr-x | docker/run-ncdocker.sh | 7 |
12 files changed, 113 insertions, 143 deletions
diff --git a/docker/build-container.sh b/docker/build-container.sh deleted file mode 100644 index 7080ae0b..00000000 --- a/docker/build-container.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -# Build NextCloudPi ARM docker container in a QEMU Raspbian with docker -# -# Copyleft 2017 by Ignacio Nunez Hernanz <nacho _a_t_ ownyourbits _d_o_t_ com> -# GPL licensed (see end of file) * Use at your own risk! -# -# Usage: ./installer.sh build-container.sh <DHCP QEMU image IP> <image> -# - - -install() -{ - git clone https://github.com/nextcloud/nextcloudpi.git - make -C nextcloudpi - # TODO docker push -} - -configure(){ :; } - -cleanup() { :; } - -# License -# -# This script is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This script is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this script; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place, Suite 330, -# Boston, MA 02111-1307 USA diff --git a/docker/debian-ncp/Dockerfile b/docker/debian-ncp/Dockerfile new file mode 100644 index 00000000..208603ff --- /dev/null +++ b/docker/debian-ncp/Dockerfile @@ -0,0 +1,9 @@ +FROM debian:stretch-slim + +MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com> + +CMD /bin/bash + +RUN mkdir -p /etc/services.d + +COPY docker/debian-ncp/run-parts.sh / diff --git a/docker/miniraspbian/run-parts.sh b/docker/debian-ncp/run-parts.sh index b4e9f74a..dee4fe61 100755 --- a/docker/miniraspbian/run-parts.sh +++ b/docker/debian-ncp/run-parts.sh @@ -2,16 +2,16 @@ cleanup() { - for file in $( ls -1rv /etc/cont-init.d ); do - /etc/cont-init.d/$file stop + for file in $( ls -1rv /etc/services.d ); do + /etc/services.d/"$file" stop "$1" done exit } trap cleanup SIGTERM -for file in $( ls -1v /etc/cont-init.d ); do - /etc/cont-init.d/$file start +for file in $( ls -1v /etc/services.d ); do + /etc/services.d/"$file" start "$1" done echo "Init done" diff --git a/docker/devel/Dockerfile b/docker/devel/Dockerfile index af01c876..277d87fa 100644 --- a/docker/devel/Dockerfile +++ b/docker/devel/Dockerfile @@ -1,7 +1,4 @@ -# docker run -d -p 4443:4443 -p 443:443 -p 80:80 -v ncdata:/data --name nextcloudpi ownyourbits/nextcloudpi:devel -# docker build . -f docker/devel/Dockerfile -t ownyourbits/nextcloudpi:devel - -FROM ownyourbits/nextcloud +FROM ownyourbits/nextcloudpi-x86 MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com> diff --git a/docker/lamp/010-lamp-run.sh b/docker/lamp/010-lamp-run.sh index 69d8c13f..9552d848 100755 --- a/docker/lamp/010-lamp-run.sh +++ b/docker/lamp/010-lamp-run.sh @@ -1,16 +1,22 @@ #!/bin/bash +source /usr/local/etc/library.sh + set -e -case "$1" in - stop) - apachectl graceful-stop - killall php-fpm7.0 - mysqladmin -u root shutdown - echo "LAMP cleanup complete" - exit 0 - ;; -esac +[[ "$1" == "stop" ]] && { + echo "Stopping apache" + apachectl graceful-stop + echo "Stopping PHP-fpm" + killall php-fpm7.0 + echo "Stopping mariaDB" + mysqladmin -u root shutdown + echo "LAMP cleanup complete" + exit 0 +} + +# MOVE CONFIGS TO PERSISTENT VOLUME +persistent_cfg /etc/apache2 echo "Starting PHP-fpm" php-fpm7.0 & @@ -21,4 +27,10 @@ echo "Starting Apache" echo "Starting mariaDB" mysqld & +# wait for mariadb +while :; do + [[ -S /var/run/mysqld/mysqld.sock ]] && break + sleep 0.5 +done + exit 0 diff --git a/docker/lamp/Dockerfile b/docker/lamp/Dockerfile index 54b5c666..e6e77b93 100644 --- a/docker/lamp/Dockerfile +++ b/docker/lamp/Dockerfile @@ -1,12 +1,11 @@ -# docker run -d -p 443:443 -p 80:80 -v ncdata:/data --name lamp ownyourbits/lamp -# docker build . -f lamp.dockerfile -t ownyourbits/lamp-arm:latest - -FROM ownyourbits/miniraspbian +FROM ownyourbits/debian-ncp-x86 MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com> SHELL ["/bin/bash", "-c"] +ENV DOCKERBUILD 1 + COPY etc/library.sh lamp.sh /usr/local/etc/ RUN \ @@ -32,9 +31,9 @@ rm -f /var/log/alternatives.log /var/log/apt/*; \ # specific cleanup rm /data/database/ib_logfile*; \ -rm /usr/local/etc/{lamp.sh,library.sh} +rm /usr/local/etc/lamp.sh -COPY docker/lamp/010-lamp-run.sh /etc/cont-init.d/ +COPY docker/lamp/010-lamp-run.sh /etc/services.d/ ENTRYPOINT ["/run-parts.sh"] diff --git a/docker/miniraspbian/Dockerfile b/docker/miniraspbian/Dockerfile deleted file mode 100644 index 2eca1bfa..00000000 --- a/docker/miniraspbian/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -# docker build . -f Dockerfile.raspbian -t ownyourbits/raspbian:latest - -FROM ownyourbits/miniraspbian:raw - -MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com> - -CMD /bin/bash - -RUN mkdir -p /etc/cont-init.d - -COPY docker/miniraspbian/run-parts.sh / diff --git a/docker/nextcloud/020-nextcloud-run.sh b/docker/nextcloud/020-nextcloud-run.sh index d4a8570c..68114e1a 100755 --- a/docker/nextcloud/020-nextcloud-run.sh +++ b/docker/nextcloud/020-nextcloud-run.sh @@ -1,25 +1,21 @@ #!/bin/bash +source /usr/local/etc/library.sh + set -e NCDIR=/var/www/nextcloud OCC="$NCDIR/occ" -case "$1" in - stop) - echo "stopping cron..." - killall cron - exit 0 - ;; -esac - -# COPY NEXTCLOUD TO /data, WHICH WILL BE IN A PERSISTENT VOLUME (first run) -test -d /data/app || { - echo "Setting up persistent Nextcloud dir..." - mv "$NCDIR" /data/app - ln -s /data/app "$NCDIR" +[[ "$1" == "stop" ]] && { + echo "stopping cron..." + killall cron + exit 0 } +echo "Starting cron" +cron + # INIT DATABASE AND NEXTCLOUD CONFIG (first run) test -f /data/app/config/config.php || { echo "Uninitialized instance, running nc-init..." @@ -28,22 +24,19 @@ test -f /data/app/config/config.php || { activate_script nc-init.sh } +# Trusted Domain ( local IP ) +IFACE=$( ip r | grep "default via" | awk '{ print $5 }' ) +IP=$( ip a | grep "global $IFACE" | grep -oP '\d{1,3}(\.\d{1,3}){3}' | head -1 ) +sudo -u www-data php "$OCC" config:system:set trusted_domains 1 --value="$IP" + # Trusted Domain ( as an argument ) [[ "$@" != "" ]] && { - IP=$( grep -oP '\d{1,3}(\.\d{1,3}){3}' <<< "$1" ) # validate that the first argument is a valid IP + IP=$( grep -oP '\d{1,3}(\.\d{1,3}){3}' <<< "$2" ) # validate that the first argument is a valid IP if [[ "$IP" != "" ]]; then - sudo -u www-data php $OCC config:system:set trusted_domains 1 --value="$IP" + sudo -u www-data php "$OCC" config:system:set trusted_domains 6 --value="$IP" else echo "First argument must be an IP address to include as a Trusted domain. Ignoring" fi } -# Trusted Domain ( local IP ) -IFACE=$( ip r | grep "default via" | awk '{ print $5 }' ) -IP=$( ip a | grep "global $IFACE" | grep -oP '\d{1,3}(\.\d{1,3}){3}' | head -1 ) -sudo -u www-data php $OCC config:system:set trusted_domains 2 --value="$IP" - -echo "Starting cron" -cron - exit 0 diff --git a/docker/nextcloud/Dockerfile b/docker/nextcloud/Dockerfile index ba7848e5..d0fda0bb 100644 --- a/docker/nextcloud/Dockerfile +++ b/docker/nextcloud/Dockerfile @@ -1,22 +1,24 @@ -# docker run -d -p 443:443 -p 80:80 -v ncdata:/data --name nextcloud ownyourbits/nextcloud -# docker build . -f nextcloud.dockerfile -t ownyourbits/nextcloud:latest - -FROM ownyourbits/lamp-arm +FROM ownyourbits/lamp-x86 MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com> SHELL ["/bin/bash", "-c"] +ENV DOCKERBUILD 1 + COPY etc/library.sh etc/nextcloudpi-config.d/nc-init.sh etc/nextcloudpi-config.d/nc-nextcloud.sh /usr/local/etc/ RUN \ -# installation +# installation ( /var/www/nextcloud -> /data/app which will be in a volume ) apt-get update; \ -apt-get install --no-install-recommends -y wget ca-certificates iputils-ping; \ +apt-get install --no-install-recommends -y wget ca-certificates sudo; \ source /usr/local/etc/library.sh; \ set +x; \ +install_script /usr/local/etc/nc-nextcloud.sh; \ activate_script /usr/local/etc/nc-nextcloud.sh; \ +mv /var/www/nextcloud /data/app; \ +ln -s /data/app /var/www/nextcloud; \ # package cleanup apt-get autoremove -y; \ @@ -31,14 +33,4 @@ rm -f /var/log/alternatives.log /var/log/apt/*; \ apt-get purge -y wget ca-certificates; \ rm /usr/local/etc/nc-nextcloud.sh -# TODO install make in noip: - -# TODO consider pre-populating /data (volume overcopies) -# TODO call cleanup() hooks for extras -# TODO remove packages unneeded from lamp, wget... -# # libudev1 util-linux -# TODO remove mariadb client (reinstall mysqldump later, but that only) -# apt-get purge -y wget ca-certificates libhogweed4 libnettle4 libpsl5 -# apt-get purge -y wget ca-certificates libgnutls-deb0-28 libhogweed2 libicu52 libnettle4 libpsl0 - -COPY docker/nextcloud/020-nextcloud-run.sh /etc/cont-init.d/ +COPY docker/nextcloud/020-nextcloud-run.sh /etc/services.d/ diff --git a/docker/nextcloudpi/000-ncp-run.sh b/docker/nextcloudpi/000-ncp-run.sh index d6a2cb49..6a4d2d2e 100755 --- a/docker/nextcloudpi/000-ncp-run.sh +++ b/docker/nextcloudpi/000-ncp-run.sh @@ -1,25 +1,8 @@ #!/bin/bash -NCDIR=/var/www/nextcloud -OCC="$NCDIR/occ" - -# INIT SYSTEM CONFIG (first run) -test -d /data/etc || { - echo "Setting up system dir..." - #mv /etc /data/etc - #ln -s /data/etc /etc -} +source /usr/local/etc/library.sh # INIT NCP CONFIG (first run) -test -d /data/ncp || { - echo "Setting up ncp dir..." - mv /usr/local/etc/ /data/ncp - ln -s /data/ncp /usr/local/etc -} - -# NC-INIT TODO copy all nextcloud folder? -# INIT DATABASE AND NEXTCLOUD CONFIG - #source /usr/local/etc/library.sh - #activate_script /usr/local/etc/nextcloudpi-config.d/nc-init.sh +persistent_cfg /usr/local/etc/nextcloudpi-config.d /data/ncp exit 0 diff --git a/docker/nextcloudpi/Dockerfile b/docker/nextcloudpi/Dockerfile index 445e6faf..d6baf749 100644 --- a/docker/nextcloudpi/Dockerfile +++ b/docker/nextcloudpi/Dockerfile @@ -1,7 +1,4 @@ -# docker run -d -p 4443:4443 -p 443:443 -p 80:80 -v ncdata:/data --name nextcloudpi ownyourbits/nextcloudpi -# docker build . -f nextcloud.dockerfile -t ownyourbits/nextcloudpi:latest - -FROM ownyourbits/nextcloudpi +FROM ownyourbits/nextcloud-x86 MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com> @@ -21,10 +18,54 @@ set +x; \ cd /usr/local/etc/; \ install_script nextcloudpi.sh; \ +# fix default paths +sed -i 's|/media/USBdrive|/data/backups|' nextcloudpi-config.d/nc-backup.sh; \ + # specific cleanup rm /usr/local/etc/nextcloudpi.sh; \ apt-get purge -y wget ca-certificates; \ +# letsencrypt build artifacts cleanup +apt-get purge -y \ + make \ + git \ + augeas-lenses \ + binutils \ + cpp \ + cpp-6 \ + gcc \ + gcc-6 \ + libasan3 \ + libaugeas0 \ + libc-dev-bin \ + libc6-dev \ + libcc1-0 \ + libcilkrts5 \ + libexpat1-dev \ + libffi-dev \ + libgcc-6-dev \ + libgomp1 \ + libisl15 \ + libitm1 \ + liblsan0 \ + libmpc3 \ + libmpx2 \ + libpython-dev \ + libpython2.7-dev \ + libquadmath0 \ + libssl-dev \ + libtsan0 \ + libubsan0 \ + linux-libc-dev \ + python-dev \ + python-virtualenv \ + python2.7-dev \ + python-pkg-resources \ + python3-pkg-resources \ + python3-virtualenv \ + virtualenv \ + python-pip-whl; \ + # package clean up apt-get autoremove -y; \ apt-get clean; \ @@ -34,7 +75,7 @@ rm -rf /usr/share/doc/*; \ rm -f /var/log/alternatives.log /var/log/apt/*; \ rm /var/cache/debconf/*-old; -COPY docker/nextcloudpi/000-ncp-run.sh /etc/cont-init.d/ +COPY docker/nextcloudpi/000-ncp-run.sh /etc/services.d/ # 4443 - ncp-web EXPOSE 80 443 4443 diff --git a/docker/run-ncdocker.sh b/docker/run-ncdocker.sh deleted file mode 100755 index f7cb5def..00000000 --- a/docker/run-ncdocker.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -# Initial Trusted Domain -IFACE=$( ip r | grep "default via" | awk '{ print $5 }' ) -IP=$( ip a | grep "global $IFACE" | grep -oP '\d{1,3}(\.\d{1,3}){3}' | head -1 ) - -docker run -d -p 443:443 -p 80:80 -v ncdata:/data --name nextcloudpi ownyourbits/nextcloudpi $IP |