mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 21:27:40 +00:00
GUACAMOLE-93: Build guacamole-docker using parent guacamole-client source.
This commit is contained in:
@@ -25,20 +25,26 @@
|
|||||||
FROM tomcat:8.0.20-jre8
|
FROM tomcat:8.0.20-jre8
|
||||||
MAINTAINER Michael Jumper <mike.jumper@guac-dev.org>
|
MAINTAINER Michael Jumper <mike.jumper@guac-dev.org>
|
||||||
|
|
||||||
# Version info
|
# Environment variables
|
||||||
ENV \
|
ENV \
|
||||||
GUAC_VERSION=0.9.9 \
|
BUILD_DIR=/tmp/guacamole-docker-BUILD \
|
||||||
GUAC_JDBC_VERSION=0.9.9 \
|
BUILD_DEPENDENCIES=" \
|
||||||
GUAC_LDAP_VERSION=0.9.9
|
maven \
|
||||||
|
openjdk-8-jdk-headless"
|
||||||
|
|
||||||
# Add configuration scripts
|
# Add configuration scripts
|
||||||
COPY bin /opt/guacamole/bin/
|
COPY guacamole-docker/bin /opt/guacamole/bin/
|
||||||
|
|
||||||
# Download and install latest guacamole-client and authentication
|
# Copy source to container for sake of build
|
||||||
RUN \
|
COPY . "$BUILD_DIR"
|
||||||
/opt/guacamole/bin/download-guacamole.sh "$GUAC_VERSION" /usr/local/tomcat/webapps && \
|
|
||||||
/opt/guacamole/bin/download-jdbc-auth.sh "$GUAC_JDBC_VERSION" /opt/guacamole && \
|
# Build latest guacamole-client and authentication
|
||||||
/opt/guacamole/bin/download-ldap-auth.sh "$GUAC_LDAP_VERSION" /opt/guacamole
|
RUN apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends $BUILD_DEPENDENCIES && \
|
||||||
|
/opt/guacamole/bin/build-guacamole.sh "$BUILD_DIR" /opt/guacamole && \
|
||||||
|
rm -Rf "$BUILD_DIR" && \
|
||||||
|
rm -Rf /var/lib/apt/lists/* && \
|
||||||
|
apt-get purge -y --auto-remove $BUILD_DEPENDENCIES
|
||||||
|
|
||||||
# Start Guacamole under Tomcat, listening on 0.0.0.0:8080
|
# Start Guacamole under Tomcat, listening on 0.0.0.0:8080
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
110
guacamole-docker/bin/build-guacamole.sh
Executable file
110
guacamole-docker/bin/build-guacamole.sh
Executable file
@@ -0,0 +1,110 @@
|
|||||||
|
#!/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-guacamole.sh
|
||||||
|
##
|
||||||
|
## Builds Guacamole, saving "guacamole.war" and all applicable extension .jars
|
||||||
|
## using the incubator-guacamole-client source contained within the given
|
||||||
|
## directory. Extension files will be grouped by their associated type, with
|
||||||
|
## all MySQL files being placed within the "mysql/" subdirectory of the
|
||||||
|
## destination, all PostgreSQL files being placed within the "postgresql/"
|
||||||
|
## subdirectory of the destination, etc.
|
||||||
|
##
|
||||||
|
## @param BUILD_DIR
|
||||||
|
## The directory which currently contains the guacamole-client source and
|
||||||
|
## in which the build should be performed.
|
||||||
|
##
|
||||||
|
## @param DESTINATION
|
||||||
|
## The directory to save guacamole.war within, along with all extension
|
||||||
|
## .jars. Note that this script will create extension-specific
|
||||||
|
## subdirectories within this directory, and files will thus be grouped by
|
||||||
|
## extension type.
|
||||||
|
##
|
||||||
|
|
||||||
|
BUILD_DIR="$1"
|
||||||
|
DESTINATION="$2"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Create destination, if it does not yet exist
|
||||||
|
#
|
||||||
|
|
||||||
|
mkdir -p "$DESTINATION"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Build guacamole.war and all extensions
|
||||||
|
#
|
||||||
|
|
||||||
|
cd "$BUILD_DIR"
|
||||||
|
mvn package
|
||||||
|
rm -Rf ~/.m2
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copy guacamole.war to destination
|
||||||
|
#
|
||||||
|
|
||||||
|
cp guacamole/target/*.war "$DESTINATION/guacamole.war"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copy JDBC auth extensions and SQL scripts
|
||||||
|
#
|
||||||
|
|
||||||
|
tar -xzf extensions/guacamole-auth-jdbc/target/*.tar.gz \
|
||||||
|
-C "$DESTINATION" \
|
||||||
|
--wildcards \
|
||||||
|
--no-anchored \
|
||||||
|
--strip-components=1 \
|
||||||
|
"*.jar" \
|
||||||
|
"*.sql"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Download MySQL JDBC driver
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "Downloading MySQL Connector/J ..."
|
||||||
|
curl -L "http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.35.tar.gz" | \
|
||||||
|
tar -xz \
|
||||||
|
-C "$DESTINATION/mysql/" \
|
||||||
|
--wildcards \
|
||||||
|
--no-anchored \
|
||||||
|
--no-wildcards-match-slash \
|
||||||
|
--strip-components=1 \
|
||||||
|
"mysql-connector-*.jar"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Download PostgreSQL JDBC driver
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "Downloading PostgreSQL JDBC driver ..."
|
||||||
|
curl -L "https://jdbc.postgresql.org/download/postgresql-9.4-1201.jdbc41.jar" > "$DESTINATION/postgresql/postgresql-9.4-1201.jdbc41.jar"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copy LDAP auth extension and schema modifications
|
||||||
|
#
|
||||||
|
|
||||||
|
mkdir -p "$DESTINATION/ldap"
|
||||||
|
tar -xzf extensions/guacamole-auth-ldap/target/*.tar.gz \
|
||||||
|
-C "$DESTINATION/ldap" \
|
||||||
|
--wildcards \
|
||||||
|
--no-anchored \
|
||||||
|
--xform="s#.*/##" \
|
||||||
|
"*.jar" \
|
||||||
|
"*.ldif"
|
||||||
|
|
@@ -1,49 +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-guacamole.sh
|
|
||||||
##
|
|
||||||
## Downloads Guacamole, saving the specified version to "guacamole.war" within
|
|
||||||
## the given directory.
|
|
||||||
##
|
|
||||||
## @param VERSION
|
|
||||||
## The version of guacamole.war to download, such as "0.9.6".
|
|
||||||
##
|
|
||||||
## @param DESTINATION
|
|
||||||
## The directory to save guacamole.war within.
|
|
||||||
##
|
|
||||||
|
|
||||||
VERSION="$1"
|
|
||||||
DESTINATION="$2"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Create destination, if it does not yet exist
|
|
||||||
#
|
|
||||||
|
|
||||||
mkdir -p "$DESTINATION"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Download guacamole.war, placing in specified destination
|
|
||||||
#
|
|
||||||
|
|
||||||
echo "Downloading Guacamole version $VERSION to $DESTINATION ..."
|
|
||||||
curl -L "http://sourceforge.net/projects/guacamole/files/current/binary/guacamole-${VERSION}.war" > "$DESTINATION/guacamole.war"
|
|
||||||
|
|
@@ -1,83 +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-jdbc-auth.sh
|
|
||||||
##
|
|
||||||
## Downloads JDBC authentication support, including any required JDBC drivers.
|
|
||||||
## The downloaded files will be grouped by their associated database type, with
|
|
||||||
## all MySQL files being placed within the "mysql/" subdirectory of the
|
|
||||||
## destination, and all PostgreSQL files being placed within the "postgresql/"
|
|
||||||
## subdirectory of the destination.
|
|
||||||
##
|
|
||||||
## @param VERSION
|
|
||||||
## The version of guacamole-auth-jdbc to download, such as "0.9.6".
|
|
||||||
##
|
|
||||||
## @param DESTINATION
|
|
||||||
## The directory to save downloaded files within. Note that this script
|
|
||||||
## will create database-specific subdirectories within this directory,
|
|
||||||
## and downloaded files will be thus grouped by their respected database
|
|
||||||
## types.
|
|
||||||
##
|
|
||||||
|
|
||||||
VERSION="$1"
|
|
||||||
DESTINATION="$2"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Create destination, if it does not yet exist
|
|
||||||
#
|
|
||||||
|
|
||||||
mkdir -p "$DESTINATION"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Download Guacamole JDBC auth
|
|
||||||
#
|
|
||||||
|
|
||||||
echo "Downloading JDBC auth version $VERSION ..."
|
|
||||||
curl -L "http://sourceforge.net/projects/guacamole/files/current/extensions/guacamole-auth-jdbc-$VERSION.tar.gz" | \
|
|
||||||
tar -xz \
|
|
||||||
-C "$DESTINATION" \
|
|
||||||
--wildcards \
|
|
||||||
--no-anchored \
|
|
||||||
--strip-components=1 \
|
|
||||||
"*.jar" \
|
|
||||||
"*.sql"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Download MySQL JDBC driver
|
|
||||||
#
|
|
||||||
|
|
||||||
echo "Downloading MySQL Connector/J ..."
|
|
||||||
curl -L "http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.35.tar.gz" | \
|
|
||||||
tar -xz \
|
|
||||||
-C "$DESTINATION/mysql/" \
|
|
||||||
--wildcards \
|
|
||||||
--no-anchored \
|
|
||||||
--no-wildcards-match-slash \
|
|
||||||
--strip-components=1 \
|
|
||||||
"mysql-connector-*.jar"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Download PostgreSQL JDBC driver
|
|
||||||
#
|
|
||||||
|
|
||||||
echo "Downloading PostgreSQL JDBC driver ..."
|
|
||||||
curl -L "https://jdbc.postgresql.org/download/postgresql-9.4-1201.jdbc41.jar" > "$DESTINATION/postgresql/postgresql-9.4-1201.jdbc41.jar"
|
|
||||||
|
|
@@ -1,62 +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-ldap-auth.sh
|
|
||||||
##
|
|
||||||
## Downloads LDAP authentication support. The LDAP authentication .jar file
|
|
||||||
## will be placed within the specified destination directory.
|
|
||||||
##
|
|
||||||
## @param VERSION
|
|
||||||
## The version of guacamole-auth-ldap to download, such as "0.9.6".
|
|
||||||
##
|
|
||||||
## @param DESTINATION
|
|
||||||
## The directory to save downloaded files within.
|
|
||||||
##
|
|
||||||
|
|
||||||
VERSION="$1"
|
|
||||||
DESTINATION="$2"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Use ldap/ subdirectory within DESTINATION.
|
|
||||||
#
|
|
||||||
|
|
||||||
DESTINATION="$DESTINATION/ldap"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Create destination, if it does not yet exist
|
|
||||||
#
|
|
||||||
|
|
||||||
mkdir -p "$DESTINATION"
|
|
||||||
|
|
||||||
#
|
|
||||||
# Download Guacamole LDAP auth
|
|
||||||
#
|
|
||||||
|
|
||||||
echo "Downloading LDAP auth version $VERSION ..."
|
|
||||||
curl -L "http://sourceforge.net/projects/guacamole/files/current/extensions/guacamole-auth-ldap-$VERSION.tar.gz" | \
|
|
||||||
tar -xz \
|
|
||||||
-C "$DESTINATION" \
|
|
||||||
--wildcards \
|
|
||||||
--no-anchored \
|
|
||||||
--xform="s#.*/##" \
|
|
||||||
"*.jar" \
|
|
||||||
"*.ldif"
|
|
||||||
|
|
@@ -325,8 +325,14 @@ END
|
|||||||
## last function run within the script.
|
## last function run within the script.
|
||||||
##
|
##
|
||||||
start_guacamole() {
|
start_guacamole() {
|
||||||
|
|
||||||
|
# Install webapp
|
||||||
|
ln -sf /opt/guacamole/guacamole.war /usr/local/tomcat/webapps/
|
||||||
|
|
||||||
|
# Start tomcat
|
||||||
cd /usr/local/tomcat
|
cd /usr/local/tomcat
|
||||||
exec catalina.sh run
|
exec catalina.sh run
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
|
Reference in New Issue
Block a user