From b6a988fcb189655946cacda5fcf655d2b10e422d Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Fri, 26 Aug 2016 12:56:41 -0700 Subject: [PATCH 1/2] GUACAMOLE-93: Build guacd-docker using parent guacamole-server source. --- src/guacd-docker/Dockerfile | 78 ++++++++++++------- .../bin/{download-guacd.sh => build-guacd.sh} | 32 +++----- 2 files changed, 60 insertions(+), 50 deletions(-) rename src/guacd-docker/bin/{download-guacd.sh => build-guacd.sh} (64%) diff --git a/src/guacd-docker/Dockerfile b/src/guacd-docker/Dockerfile index c0451662..adbccd30 100644 --- a/src/guacd-docker/Dockerfile +++ b/src/guacd-docker/Dockerfile @@ -27,39 +27,61 @@ MAINTAINER Michael Jumper # Environment variables ENV \ - GUAC_VERSION=0.9.9 \ - LC_ALL=en_US.UTF-8 + BUILD_DIR=/tmp/guacd-docker-BUILD \ + LC_ALL=en_US.UTF-8 \ + RUNTIME_DEPENDENCIES=" \ + cairo \ + dejavu-sans-mono-fonts \ + freerdp \ + freerdp-plugins \ + ghostscript \ + libjpeg-turbo \ + libssh2 \ + liberation-mono-fonts \ + libtelnet \ + libvorbis \ + libvncserver \ + libwebp \ + pango \ + pulseaudio-libs \ + terminus-fonts \ + uuid" \ + BUILD_DEPENDENCIES=" \ + autoconf \ + automake \ + cairo-devel \ + freerdp-devel \ + gcc \ + libjpeg-turbo-devel \ + libssh2-devel \ + libtool \ + libtelnet-devel \ + libvorbis-devel \ + libvncserver-devel \ + libwebp-devel \ + make \ + pango-devel \ + pulseaudio-libs-devel \ + uuid-devel" -# Bring environment up-to-date, install guacamole-server build dependencies -RUN yum -y update i && \ - yum -y install epel-release && \ - yum -y install \ - cairo-devel \ - dejavu-sans-mono-fonts \ - freerdp-devel \ - freerdp-plugins \ - gcc \ - ghostscript \ - libjpeg-turbo-devel \ - libssh2-devel \ - liberation-mono-fonts \ - libtelnet-devel \ - libvorbis-devel \ - libvncserver-devel \ - libwebp-devel \ - make \ - pango-devel \ - pulseaudio-libs-devel \ - tar \ - terminus-fonts \ - uuid-devel && \ +# Bring environment up-to-date and install guacamole-server dependencies +RUN yum -y update && \ + yum -y install epel-release && \ + yum -y install $RUNTIME_DEPENDENCIES && \ yum clean all # Add configuration scripts -COPY bin /opt/guacd/bin/ +COPY src/guacd-docker/bin /opt/guacd/bin/ -# Download and install latest guacamole-server -RUN /opt/guacd/bin/download-guacd.sh "$GUAC_VERSION" +# Copy source to container for sake of build +COPY . "$BUILD_DIR" + +# Build guacamole-server from local source +RUN yum -y install $BUILD_DEPENDENCIES && \ + /opt/guacd/bin/build-guacd.sh "$BUILD_DIR" && \ + rm -Rf "$BUILD_DIR" && \ + yum -y autoremove $BUILD_DEPENDENCIES && \ + yum clean all # Start guacd, listening on port 0.0.0.0:4822 EXPOSE 4822 diff --git a/src/guacd-docker/bin/download-guacd.sh b/src/guacd-docker/bin/build-guacd.sh similarity index 64% rename from src/guacd-docker/bin/download-guacd.sh rename to src/guacd-docker/bin/build-guacd.sh index 638b276d..fe36268c 100755 --- a/src/guacd-docker/bin/download-guacd.sh +++ b/src/guacd-docker/bin/build-guacd.sh @@ -19,49 +19,37 @@ # ## -## @fn download-guacd.sh +## @fn build-guacd.sh ## -## Downloads and builds the given version of guacamole-server, automatically -## creating any required symbolic links for the proper loading of FreeRDP -## plugins. +## Builds the source of guacamole-server, automatically creating any required +## symbolic links for the proper loading of FreeRDP plugins. ## -## @param VERSION -## The version of guacamole-server to download, such as "0.9.6". +## @param BUILD_DIR +## The directory which currently contains the guacamole-server source and +## in which the build should be performed. ## -VERSION="$1" -BUILD_DIR="/tmp" +BUILD_DIR="$1" ## ## Locates the directory in which the FreeRDP libraries (.so files) are ## located, printing the result to STDOUT. ## where_is_freerdp() { - dirname `rpm -ql freerdp-devel | grep 'libfreerdp.*\.so' | head -n1` + dirname `rpm -ql freerdp-libs | grep 'libfreerdp.*\.so' | head -n1` } -# -# Download latest guacamole-server -# - -curl -L "http://sourceforge.net/projects/guacamole/files/current/source/guacamole-server-$VERSION.tar.gz" | tar -xz -C "$BUILD_DIR" - # # Build guacamole-server # -cd "$BUILD_DIR/guacamole-server-$VERSION" +cd "$BUILD_DIR" +autoreconf -fi ./configure make make install ldconfig -# -# Clean up after build -# - -rm -Rf "$BUILD_DIR/guacamole-server-$VERSION" - # # Add FreeRDP plugins to proper path # From 4f84be1c312db329a1b87cca8389e29b7b3dfe48 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sun, 28 Aug 2016 12:23:14 -0700 Subject: [PATCH 2/2] GUACAMOLE-93: Move Dockerfile to root of repository. --- .dockerignore | 58 +++++++++++++++++++++++ src/guacd-docker/Dockerfile => Dockerfile | 0 src/guacd-docker/.dockerignore | 3 -- src/guacd-docker/.gitignore | 1 - 4 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 .dockerignore rename src/guacd-docker/Dockerfile => Dockerfile (100%) delete mode 100644 src/guacd-docker/.dockerignore delete mode 100644 src/guacd-docker/.gitignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..3e08b9af --- /dev/null +++ b/.dockerignore @@ -0,0 +1,58 @@ + +# Git repository metadata +.git +**/.gitignore + +# Object code +**/*.o +**/*.so +**/*.lo +**/*.la + +# gcov files +**/*.gcda +**/*.gcov +**/*.gcno + +# Backup files +**/*~ + +# Release files +**/*.tar.gz + +# Files currently being edited by vim or vi +**/*.swp + +# automake/autoconf +**/.deps/ +**/.dirstamp +**/.libs/ +**/Makefile +**/Makefile.in +aclocal.m4 +autom4te.cache/ +m4/* +**/!README +compile +config.guess +config.h +config.h.in +config.log +config.status +config.sub +configure +depcomp +install-sh +libtool +ltmain.sh +missing +stamp-h1 +test-driver + +# Test binaries +tests/test_* +!tests/test_*.[ch] + +# Generated docs +doc/doxygen-output + diff --git a/src/guacd-docker/Dockerfile b/Dockerfile similarity index 100% rename from src/guacd-docker/Dockerfile rename to Dockerfile diff --git a/src/guacd-docker/.dockerignore b/src/guacd-docker/.dockerignore deleted file mode 100644 index 5792b764..00000000 --- a/src/guacd-docker/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -*~ -.git -.gitignore diff --git a/src/guacd-docker/.gitignore b/src/guacd-docker/.gitignore deleted file mode 100644 index b25c15b8..00000000 --- a/src/guacd-docker/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*~