GUACAMOLE-93: Merge fix for server docker build.

This commit is contained in:
James Muehlner 2016-08-28 14:53:42 -07:00
commit 701e44a0cb
6 changed files with 157 additions and 93 deletions

58
.dockerignore Normal file
View File

@ -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

89
Dockerfile Normal file
View File

@ -0,0 +1,89 @@
#
# 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.
#
#
# Dockerfile for guacamole-server
#
# Start from CentOS base image
FROM centos:centos7
MAINTAINER Michael Jumper <mike.jumper@guac-dev.org>
# Environment variables
ENV \
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 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 src/guacd-docker/bin /opt/guacd/bin/
# 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
CMD [ "/usr/local/sbin/guacd", "-b", "0.0.0.0", "-f" ]

View File

@ -1,3 +0,0 @@
*~
.git
.gitignore

View File

@ -1 +0,0 @@
*~

View File

@ -1,67 +0,0 @@
#
# 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.
#
#
# Dockerfile for guacamole-server
#
# Start from CentOS base image
FROM centos:centos7
MAINTAINER Michael Jumper <mike.jumper@guac-dev.org>
# Environment variables
ENV \
GUAC_VERSION=0.9.9 \
LC_ALL=en_US.UTF-8
# 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 && \
yum clean all
# Add configuration scripts
COPY bin /opt/guacd/bin/
# Download and install latest guacamole-server
RUN /opt/guacd/bin/download-guacd.sh "$GUAC_VERSION"
# Start guacd, listening on port 0.0.0.0:4822
EXPOSE 4822
CMD [ "/usr/local/sbin/guacd", "-b", "0.0.0.0", "-f" ]

View File

@ -19,49 +19,37 @@
# #
## ##
## @fn download-guacd.sh ## @fn build-guacd.sh
## ##
## Downloads and builds the given version of guacamole-server, automatically ## Builds the source of guacamole-server, automatically creating any required
## creating any required symbolic links for the proper loading of FreeRDP ## symbolic links for the proper loading of FreeRDP plugins.
## plugins.
## ##
## @param VERSION ## @param BUILD_DIR
## The version of guacamole-server to download, such as "0.9.6". ## The directory which currently contains the guacamole-server source and
## in which the build should be performed.
## ##
VERSION="$1" BUILD_DIR="$1"
BUILD_DIR="/tmp"
## ##
## Locates the directory in which the FreeRDP libraries (.so files) are ## Locates the directory in which the FreeRDP libraries (.so files) are
## located, printing the result to STDOUT. ## located, printing the result to STDOUT.
## ##
where_is_freerdp() { 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 # Build guacamole-server
# #
cd "$BUILD_DIR/guacamole-server-$VERSION" cd "$BUILD_DIR"
autoreconf -fi
./configure ./configure
make make
make install make install
ldconfig ldconfig
#
# Clean up after build
#
rm -Rf "$BUILD_DIR/guacamole-server-$VERSION"
# #
# Add FreeRDP plugins to proper path # Add FreeRDP plugins to proper path
# #