Repository: incubator-guacamole-server Updated Branches: refs/heads/master 432602998 -> 701e44a0c
GUACAMOLE-93: Build guacd-docker using parent guacamole-server source. Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/commit/b6a988fc Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/tree/b6a988fc Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/diff/b6a988fc Branch: refs/heads/master Commit: b6a988fcb189655946cacda5fcf655d2b10e422d Parents: 4326029 Author: Michael Jumper <[email protected]> Authored: Fri Aug 26 12:56:41 2016 -0700 Committer: Michael Jumper <[email protected]> Committed: Fri Aug 26 14:37:58 2016 -0700 ---------------------------------------------------------------------- src/guacd-docker/Dockerfile | 78 ++++++++++++++++++----------- src/guacd-docker/bin/build-guacd.sh | 62 +++++++++++++++++++++++ src/guacd-docker/bin/download-guacd.sh | 74 --------------------------- 3 files changed, 112 insertions(+), 102 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/blob/b6a988fc/src/guacd-docker/Dockerfile ---------------------------------------------------------------------- diff --git a/src/guacd-docker/Dockerfile b/src/guacd-docker/Dockerfile index c045166..adbccd3 100644 --- a/src/guacd-docker/Dockerfile +++ b/src/guacd-docker/Dockerfile @@ -27,39 +27,61 @@ MAINTAINER Michael Jumper <[email protected]> # 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 http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/blob/b6a988fc/src/guacd-docker/bin/build-guacd.sh ---------------------------------------------------------------------- diff --git a/src/guacd-docker/bin/build-guacd.sh b/src/guacd-docker/bin/build-guacd.sh new file mode 100755 index 0000000..fe36268 --- /dev/null +++ b/src/guacd-docker/bin/build-guacd.sh @@ -0,0 +1,62 @@ +#!/bin/sh -e +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +## +## @fn build-guacd.sh +## +## Builds the source of guacamole-server, automatically creating any required +## symbolic links for the proper loading of FreeRDP plugins. +## +## @param BUILD_DIR +## The directory which currently contains the guacamole-server source and +## in which the build should be performed. +## + +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-libs | grep 'libfreerdp.*\.so' | head -n1` +} + +# +# Build guacamole-server +# + +cd "$BUILD_DIR" +autoreconf -fi +./configure +make +make install +ldconfig + +# +# Add FreeRDP plugins to proper path +# + +FREERDP_DIR=`where_is_freerdp` +FREERDP_PLUGIN_DIR="$FREERDP_DIR/freerdp" + +mkdir -p "$FREERDP_PLUGIN_DIR" +ln -s /usr/local/lib/freerdp/*.so "$FREERDP_PLUGIN_DIR" + http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/blob/b6a988fc/src/guacd-docker/bin/download-guacd.sh ---------------------------------------------------------------------- diff --git a/src/guacd-docker/bin/download-guacd.sh b/src/guacd-docker/bin/download-guacd.sh deleted file mode 100755 index 638b276..0000000 --- a/src/guacd-docker/bin/download-guacd.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -e -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -## -## @fn download-guacd.sh -## -## Downloads and builds the given version 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". -## - -VERSION="$1" -BUILD_DIR="/tmp" - -## -## 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` -} - -# -# 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" -./configure -make -make install -ldconfig - -# -# Clean up after build -# - -rm -Rf "$BUILD_DIR/guacamole-server-$VERSION" - -# -# Add FreeRDP plugins to proper path -# - -FREERDP_DIR=`where_is_freerdp` -FREERDP_PLUGIN_DIR="$FREERDP_DIR/freerdp" - -mkdir -p "$FREERDP_PLUGIN_DIR" -ln -s /usr/local/lib/freerdp/*.so "$FREERDP_PLUGIN_DIR" -
