Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/nextcloudpi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authornachoparker <nacho@ownyourbits.com>2017-09-21 19:19:35 +0300
committernachoparker <nacho@ownyourbits.com>2017-09-21 23:20:46 +0300
commitacbe26cc141cea7d6f9b139ddd1211b44403a2ac (patch)
treefe1f55dd8913195f978a7532e2318167f03c2b95 /docker
parent786728c2ec50cd0bbafdaefec2d64cad9df48f0f (diff)
docker: updated to stretch and added NextCloudPi layer
Diffstat (limited to 'docker')
-rw-r--r--docker/devel/Dockerfile35
-rw-r--r--docker/lamp.dockerfile27
-rwxr-xr-xdocker/lamp/010-lamp-run.sh24
-rw-r--r--docker/lamp/Dockerfile41
-rw-r--r--docker/miniraspbian/Dockerfile (renamed from docker/raspbian.dockerfile)3
-rwxr-xr-xdocker/miniraspbian/run-parts.sh18
-rw-r--r--docker/nextcloud.dockerfile20
-rwxr-xr-xdocker/nextcloud/020-nextcloud-run.sh49
-rw-r--r--docker/nextcloud/Dockerfile44
-rwxr-xr-xdocker/nextcloudpi/000-ncp-run.sh25
-rw-r--r--docker/nextcloudpi/Dockerfile40
-rwxr-xr-xdocker/run-lamp.sh27
-rwxr-xr-xdocker/run-nc.sh77
13 files changed, 279 insertions, 151 deletions
diff --git a/docker/devel/Dockerfile b/docker/devel/Dockerfile
new file mode 100644
index 00000000..af01c876
--- /dev/null
+++ b/docker/devel/Dockerfile
@@ -0,0 +1,35 @@
+# 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
+
+MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com>
+
+SHELL ["/bin/bash", "-c"]
+
+ENV DOCKERBUILD 1
+
+COPY build-devel.sh /usr/local/etc/
+
+RUN \
+apt-get update; \
+apt-get install --no-install-recommends -y wget ca-certificates git; \
+
+# install nextcloudpi devel
+source /usr/local/etc/library.sh; \
+set +x; \
+cd /usr/local/etc/; \
+install_script build-devel.sh; \
+
+# specific cleanup
+rm /usr/local/etc/build-devel.sh; \
+apt-get purge -y wget ca-certificates git; \
+
+# package clean up
+apt-get autoremove -y; \
+apt-get clean; \
+rm -f /var/lib/apt/lists/*; \
+rm -rf /usr/share/man/*; \
+rm -rf /usr/share/doc/*; \
+rm -f /var/log/alternatives.log /var/log/apt/*; \
+rm /var/cache/debconf/*-old;
diff --git a/docker/lamp.dockerfile b/docker/lamp.dockerfile
deleted file mode 100644
index 051835cf..00000000
--- a/docker/lamp.dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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
-
-MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com>
-
-SHELL ["/bin/bash", "-c"]
-
-COPY etc/library.sh lamp.sh /usr/local/etc/
-
-# NOTE: move database to /data, which will be in a persistent volume
-RUN source /usr/local/etc/library.sh; set +x; install_script /usr/local/etc/lamp.sh; \
- apt-get autoremove -y; apt-get clean; rm /var/lib/apt/lists/* -f; rm -rf /usr/share/man/*; rm -rf /usr/share/doc/*; \
- mkdir -p /data/; \
- mv /var/lib/mysql /data/database; \
- sed -i "s|^datadir.*|datadir = /data/database|" /etc/mysql/mariadb.conf.d/50-server.cnf; \
- rm /data/database/ib_logfile*; \
- rm /var/cache/debconf/*-old; \
- rm /var/log/alternatives.log /var/log/apt/* ; \
- rm /usr/local/etc/{lamp.sh,library.sh}
-
-COPY docker/run-lamp.sh /usr/local/bin/
-
-ENTRYPOINT ["/usr/local/bin/run.sh"]
-
-EXPOSE 80 443
diff --git a/docker/lamp/010-lamp-run.sh b/docker/lamp/010-lamp-run.sh
new file mode 100755
index 00000000..69d8c13f
--- /dev/null
+++ b/docker/lamp/010-lamp-run.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+set -e
+
+case "$1" in
+ stop)
+ apachectl graceful-stop
+ killall php-fpm7.0
+ mysqladmin -u root shutdown
+ echo "LAMP cleanup complete"
+ exit 0
+ ;;
+esac
+
+echo "Starting PHP-fpm"
+php-fpm7.0 &
+
+echo "Starting Apache"
+/usr/sbin/apache2ctl start
+
+echo "Starting mariaDB"
+mysqld &
+
+exit 0
diff --git a/docker/lamp/Dockerfile b/docker/lamp/Dockerfile
new file mode 100644
index 00000000..54b5c666
--- /dev/null
+++ b/docker/lamp/Dockerfile
@@ -0,0 +1,41 @@
+# 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
+
+MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com>
+
+SHELL ["/bin/bash", "-c"]
+
+COPY etc/library.sh lamp.sh /usr/local/etc/
+
+RUN \
+
+# installation
+source /usr/local/etc/library.sh; \
+set +x; \
+install_script /usr/local/etc/lamp.sh; \
+
+# mariaDB fixups (move database to /data, which will be in a persistent volume)
+mkdir -p /data/; \
+mv /var/lib/mysql /data/database; \
+sed -i "s|^datadir.*|datadir = /data/database|" /etc/mysql/mariadb.conf.d/50-server.cnf; \
+
+# package cleanup
+apt-get autoremove -y; \
+apt-get clean; \
+rm /var/lib/apt/lists/* -f; \
+rm -rf /usr/share/man/*; \
+rm -rf /usr/share/doc/*; \
+rm /var/cache/debconf/*-old; \
+rm -f /var/log/alternatives.log /var/log/apt/*; \
+
+# specific cleanup
+rm /data/database/ib_logfile*; \
+rm /usr/local/etc/{lamp.sh,library.sh}
+
+COPY docker/lamp/010-lamp-run.sh /etc/cont-init.d/
+
+ENTRYPOINT ["/run-parts.sh"]
+
+EXPOSE 80 443
diff --git a/docker/raspbian.dockerfile b/docker/miniraspbian/Dockerfile
index b626bfdf..2eca1bfa 100644
--- a/docker/raspbian.dockerfile
+++ b/docker/miniraspbian/Dockerfile
@@ -6,3 +6,6 @@ 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/miniraspbian/run-parts.sh b/docker/miniraspbian/run-parts.sh
new file mode 100755
index 00000000..b4e9f74a
--- /dev/null
+++ b/docker/miniraspbian/run-parts.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+cleanup()
+{
+ for file in $( ls -1rv /etc/cont-init.d ); do
+ /etc/cont-init.d/$file stop
+ done
+ exit
+}
+
+trap cleanup SIGTERM
+
+for file in $( ls -1v /etc/cont-init.d ); do
+ /etc/cont-init.d/$file start
+done
+
+echo "Init done"
+while true; do sleep 0.5; done # do nothing, just wait for trap from 'docker stop'
diff --git a/docker/nextcloud.dockerfile b/docker/nextcloud.dockerfile
deleted file mode 100644
index 1d24d6b9..00000000
--- a/docker/nextcloud.dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-# docker run -d -p 443:443 -p 80:80 -v ncdata:/data --name nextcloudpi ownyourbits/nextcloudpi
-# docker build . -f nextcloud.dockerfile -t ownyourbits/nextcloudpi:latest
-
-FROM ownyourbits/lamp-arm
-
-MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com>
-
-SHELL ["/bin/bash", "-c"]
-
-COPY etc/library.sh etc/nextcloudpi-config.d/nc-init.sh etc/nextcloudpi-config.d/nc-nextcloud.sh /usr/local/etc/
-
-RUN apt-get update; apt-get install --no-install-recommends -y wget ca-certificates; \
- source /usr/local/etc/library.sh; set +x; activate_script /usr/local/etc/nc-nextcloud.sh; \
- apt-get purge -y wget ca-certificates libgnutls-deb0-28 libhogweed2 libicu52 libnettle4 libpsl0; \
- apt-get autoremove -y; apt-get clean; rm /var/lib/apt/lists/* -f; rm -rf /usr/share/man/*; rm -rf /usr/share/doc/*; \
- rm /var/log/apt/* ; \
- rm /var/cache/debconf/*-old; \
- rm /usr/local/etc/nc-nextcloud.sh
-
-COPY docker/run-nc.sh /usr/local/bin/run.sh
diff --git a/docker/nextcloud/020-nextcloud-run.sh b/docker/nextcloud/020-nextcloud-run.sh
new file mode 100755
index 00000000..d4a8570c
--- /dev/null
+++ b/docker/nextcloud/020-nextcloud-run.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+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"
+}
+
+# INIT DATABASE AND NEXTCLOUD CONFIG (first run)
+test -f /data/app/config/config.php || {
+ echo "Uninitialized instance, running nc-init..."
+ source /usr/local/etc/library.sh
+ cd /usr/local/etc/
+ activate_script nc-init.sh
+}
+
+# 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
+ if [[ "$IP" != "" ]]; then
+ sudo -u www-data php $OCC config:system:set trusted_domains 1 --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
new file mode 100644
index 00000000..ba7848e5
--- /dev/null
+++ b/docker/nextcloud/Dockerfile
@@ -0,0 +1,44 @@
+# 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
+
+MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com>
+
+SHELL ["/bin/bash", "-c"]
+
+COPY etc/library.sh etc/nextcloudpi-config.d/nc-init.sh etc/nextcloudpi-config.d/nc-nextcloud.sh /usr/local/etc/
+
+RUN \
+
+# installation
+apt-get update; \
+apt-get install --no-install-recommends -y wget ca-certificates iputils-ping; \
+source /usr/local/etc/library.sh; \
+set +x; \
+activate_script /usr/local/etc/nc-nextcloud.sh; \
+
+# package cleanup
+apt-get autoremove -y; \
+apt-get clean; \
+rm /var/lib/apt/lists/* -f; \
+rm -rf /usr/share/man/*; \
+rm -rf /usr/share/doc/*; \
+rm /var/cache/debconf/*-old; \
+rm -f /var/log/alternatives.log /var/log/apt/*; \
+
+# specific cleanup
+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/
diff --git a/docker/nextcloudpi/000-ncp-run.sh b/docker/nextcloudpi/000-ncp-run.sh
new file mode 100755
index 00000000..d6a2cb49
--- /dev/null
+++ b/docker/nextcloudpi/000-ncp-run.sh
@@ -0,0 +1,25 @@
+#!/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
+}
+
+# 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
+
+exit 0
diff --git a/docker/nextcloudpi/Dockerfile b/docker/nextcloudpi/Dockerfile
new file mode 100644
index 00000000..445e6faf
--- /dev/null
+++ b/docker/nextcloudpi/Dockerfile
@@ -0,0 +1,40 @@
+# 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
+
+MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com>
+
+SHELL ["/bin/bash", "-c"]
+
+ENV DOCKERBUILD 1
+
+COPY nextcloudpi.sh /usr/local/etc/
+
+RUN \
+apt-get update; \
+apt-get install --no-install-recommends -y wget ca-certificates; \
+
+# install nextcloudpi
+source /usr/local/etc/library.sh; \
+set +x; \
+cd /usr/local/etc/; \
+install_script nextcloudpi.sh; \
+
+# specific cleanup
+rm /usr/local/etc/nextcloudpi.sh; \
+apt-get purge -y wget ca-certificates; \
+
+# package clean up
+apt-get autoremove -y; \
+apt-get clean; \
+rm -f /var/lib/apt/lists/*; \
+rm -rf /usr/share/man/*; \
+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/
+
+# 4443 - ncp-web
+EXPOSE 80 443 4443
diff --git a/docker/run-lamp.sh b/docker/run-lamp.sh
deleted file mode 100755
index 885b616e..00000000
--- a/docker/run-lamp.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-cleanup()
-{
- apachectl graceful-stop
- killall php-fpm7.0
- mysqladmin -u root -pownyourbits shutdown
- killall cron
- echo "Cleanup complete"
-}
-
-trap cleanup SIGTERM
-
-echo "Starting PHP-fpm"
-php-fpm7.0 &
-
-echo "Starting Apache"
-/usr/sbin/apache2ctl start
-
-echo "Starting mariaDB"
-mysqld &
-
-echo "Starting cron"
-cron
-
-echo "Done"
-while true; do sleep 0.5; done # do nothing, just wait for trap from 'docker stop'
diff --git a/docker/run-nc.sh b/docker/run-nc.sh
deleted file mode 100755
index 86716b64..00000000
--- a/docker/run-nc.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-
-NCDIR=/var/www/nextcloud
-OCC="$NCDIR/occ"
-
-cleanup()
-{
- apachectl graceful-stop
- killall php-fpm7.0
- mysqladmin -u root -pownyourbits shutdown
- killall cron
- echo "Cleanup complete"
-}
-
-trap cleanup SIGTERM
-
-echo "Starting PHP-fpm"
-php-fpm7.0 &
-
-echo "Starting mariaDB"
-mysqld &
-
-# WAIT FOR MARIADB
-while :; do
- [[ -S /var/run/mysqld/mysqld.sock ]] && break
- sleep 0.5
-done
-
-## FIRST RUN: initialize NextCloud
-
-test -d /data/app || {
-
- echo "[First run]"
-
- # INIT DATABASE AND NEXTCLOUD CONFIG
- source /usr/local/etc/library.sh
- activate_script /usr/local/etc/nextcloudpi-config.d/nc-init.sh
-
- # COPY DATADIR TO /data, WHICH WILL BE IN A PERSISTENT VOLUME
- echo "Setting up persistent data dir..."
- cp -ra /"$NCDIR"/data /data/app
- sudo -u www-data php $OCC config:system:set datadirectory --value=/data/app
-
- # COPY CONFIG TO /data, WHICH WILL BE IN A PERSISTENT VOLUME
- echo "Setting up persistent configuration..."
- test -e /data/config || mv /"$NCDIR"/config /data
-}
-
-# Use persistent configuration
-test -e /data/config && {
- rm -rf /"$NCDIR"/config
- ln -s /data/config /"$NCDIR"/config
-}
-
-# 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
- if [[ "$IP" != "" ]]; then
- sudo -u www-data php $OCC config:system:set trusted_domains 1 --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 Apache"
-/usr/sbin/apache2ctl start
-
-echo "Starting cron"
-cron
-
-echo "Done"
-while true; do sleep 0.5; done # do nothing, just wait for trap from 'docker stop'