From b6a988fcb189655946cacda5fcf655d2b10e422d Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Fri, 26 Aug 2016 12:56:41 -0700 Subject: [PATCH] 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 #