Преглед изворни кода

Add support to install Docker on raspbian/jessie

Signed-off-by: Dieter Reuter <dieter.reuter@me.com>
Dieter Reuter пре 9 година
родитељ
комит
6e76b7a7e5
1 измењених фајлова са 32 додато и 21 уклоњено
  1. 32 21
      hack/install.sh

+ 32 - 21
hack/install.sh

@@ -87,7 +87,7 @@ check_forked() {
 			Upstream release is '$lsb_dist' version '$dist_version'.
 			Upstream release is '$lsb_dist' version '$dist_version'.
 			EOF
 			EOF
 		else
 		else
-			if [ -r /etc/debian_version ] && [ "$lsb_dist" != "ubuntu" ]; then
+			if [ -r /etc/debian_version ] && [ "$lsb_dist" != "ubuntu" ] && [ "$lsb_dist" != "raspbian" ]; then
 				# We're Debian and don't even know it!
 				# We're Debian and don't even know it!
 				lsb_dist=debian
 				lsb_dist=debian
 				dist_version="$(cat /etc/debian_version | sed 's/\/.*//' | sed 's/\..*//')"
 				dist_version="$(cat /etc/debian_version | sed 's/\/.*//' | sed 's/\..*//')"
@@ -129,10 +129,12 @@ do_install() {
 	case "$(uname -m)" in
 	case "$(uname -m)" in
 		*64)
 		*64)
 			;;
 			;;
+		armv6l|armv7l)
+			;;
 		*)
 		*)
 			cat >&2 <<-'EOF'
 			cat >&2 <<-'EOF'
-			Error: you are not using a 64bit platform.
-			Docker currently only supports 64bit platforms.
+			Error: you are not using a 64bit platform or a Raspberry Pi (armv6l/armv7l).
+			Docker currently only supports 64bit platforms or a Raspberry Pi (armv6l/armv7l).
 			EOF
 			EOF
 			exit 1
 			exit 1
 			;;
 			;;
@@ -268,7 +270,7 @@ do_install() {
 			fi
 			fi
 		;;
 		;;
 
 
-		debian)
+		debian|raspbian)
 			dist_version="$(cat /etc/debian_version | sed 's/\/.*//' | sed 's/\..*//')"
 			dist_version="$(cat /etc/debian_version | sed 's/\/.*//' | sed 's/\..*//')"
 			case "$dist_version" in
 			case "$dist_version" in
 				8)
 				8)
@@ -375,7 +377,7 @@ do_install() {
 			exit 0
 			exit 0
 			;;
 			;;
 
 
-		ubuntu|debian)
+		ubuntu|debian|raspbian)
 			export DEBIAN_FRONTEND=noninteractive
 			export DEBIAN_FRONTEND=noninteractive
 
 
 			did_apt_get_update=
 			did_apt_get_update=
@@ -386,24 +388,33 @@ do_install() {
 				fi
 				fi
 			}
 			}
 
 
-			# aufs is preferred over devicemapper; try to ensure the driver is available.
-			if ! grep -q aufs /proc/filesystems && ! $sh_c 'modprobe aufs'; then
-				if uname -r | grep -q -- '-generic' && dpkg -l 'linux-image-*-generic' | grep -qE '^ii|^hi' 2>/dev/null; then
-					kern_extras="linux-image-extra-$(uname -r) linux-image-extra-virtual"
-
-					apt_get_update
-					( set -x; $sh_c 'sleep 3; apt-get install -y -q '"$kern_extras" ) || true
-
-					if ! grep -q aufs /proc/filesystems && ! $sh_c 'modprobe aufs'; then
-						echo >&2 'Warning: tried to install '"$kern_extras"' (for AUFS)'
-						echo >&2 ' but we still have no AUFS.  Docker may not work. Proceeding anyways!'
+			if [ "$lsb_dist" = "raspbian" ]; then
+				# overlay is preferred to use on Raspbian
+				if [ ! -f /etc/modules-load.d/docker.conf ]; then
+					# Load kernel module 'overlay' at boot time
+					( set -x; $sh_c "modprobe overlay" )
+					( set -x; $sh_c "echo overlay > /etc/modules-load.d/docker.conf" )
+				fi
+			else
+				# aufs is preferred over devicemapper; try to ensure the driver is available.
+				if ! grep -q aufs /proc/filesystems && ! $sh_c 'modprobe aufs'; then
+					if uname -r | grep -q -- '-generic' && dpkg -l 'linux-image-*-generic' | grep -qE '^ii|^hi' 2>/dev/null; then
+						kern_extras="linux-image-extra-$(uname -r) linux-image-extra-virtual"
+
+						apt_get_update
+						( set -x; $sh_c 'sleep 3; apt-get install -y -q '"$kern_extras" ) || true
+
+						if ! grep -q aufs /proc/filesystems && ! $sh_c 'modprobe aufs'; then
+							echo >&2 'Warning: tried to install '"$kern_extras"' (for AUFS)'
+							echo >&2 ' but we still have no AUFS.  Docker may not work. Proceeding anyways!'
+							( set -x; sleep 10 )
+						fi
+					else
+						echo >&2 'Warning: current kernel is not supported by the linux-image-extra-virtual'
+						echo >&2 ' package.  We have no AUFS support.  Consider installing the packages'
+						echo >&2 ' linux-image-virtual kernel and linux-image-extra-virtual for AUFS support.'
 						( set -x; sleep 10 )
 						( set -x; sleep 10 )
 					fi
 					fi
-				else
-					echo >&2 'Warning: current kernel is not supported by the linux-image-extra-virtual'
-					echo >&2 ' package.  We have no AUFS support.  Consider installing the packages'
-					echo >&2 ' linux-image-virtual kernel and linux-image-extra-virtual for AUFS support.'
-					( set -x; sleep 10 )
 				fi
 				fi
 			fi
 			fi