GUACAMOLE-93: Merge fix for server docker build.
This commit is contained in:
commit
701e44a0cb
58
.dockerignore
Normal file
58
.dockerignore
Normal 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
89
Dockerfile
Normal 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" ]
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
*~
|
|
||||||
.git
|
|
||||||
.gitignore
|
|
1
src/guacd-docker/.gitignore
vendored
1
src/guacd-docker/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
*~
|
|
@ -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" ]
|
|
||||||
|
|
@ -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
|
||||||
#
|
#
|
Loading…
Reference in New Issue
Block a user