mirror of
https://github.com/jwetzell/docker-guacamole.git
synced 2026-08-20 14:39:07 +00:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c7acbab48 | |||
| c602be9111 | |||
| 8d1898929f | |||
| 916997c62b | |||
| b65c495492 | |||
| 38f7cf7c41 | |||
| 7fae4045a7 | |||
| 99294c461e | |||
| 255d5c6d0a | |||
| 96a36dcf18 | |||
| 5aeace57a7 | |||
| d6aa86d06f | |||
| 79b8a4a538 | |||
| 19878a35ed | |||
| 4864d3f54c | |||
| aee7baea37 | |||
| a7dfed307d | |||
| cf893c5b32 | |||
| da8a28fc9d | |||
| 8913f805be | |||
| f847b22271 |
+1
-2
@@ -1,3 +1,2 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
custom: https://paypal.me/oznu
|
||||
custom: ['https://paypal.me/JoelWetzell','https://venmo.com/Joel-Wetzell','https://cash.app/$JoelWetzell']
|
||||
|
||||
@@ -1,34 +1,50 @@
|
||||
FROM library/tomcat:9-jre11-openjdk-bullseye
|
||||
|
||||
ENV ARCH=amd64 \
|
||||
GUAC_VER=1.4.0 \
|
||||
GUAC_VER=1.5.4 \
|
||||
GUACAMOLE_HOME=/app/guacamole \
|
||||
PG_MAJOR=9.6 \
|
||||
PG_VER=9.6.24 \
|
||||
LIBSSH2_VER=1.11.0 \
|
||||
PGDATA=/config/postgres \
|
||||
POSTGRES_USER=guacamole \
|
||||
POSTGRES_DB=guacamole_db
|
||||
|
||||
# Add Postgres Repository
|
||||
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" >> /etc/apt/sources.list.d/pgdg.list && \
|
||||
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | apt-key add -
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
libcairo2-dev libjpeg62-turbo-dev libpng-dev \
|
||||
&& apt-get install -y curl ca-certificates gnupg \
|
||||
libcairo2-dev libjpeg62-turbo-dev libpng-dev libavformat-dev \
|
||||
libossp-uuid-dev libavcodec-dev libavutil-dev \
|
||||
libswscale-dev freerdp2-dev libfreerdp-client2-2 libpango1.0-dev \
|
||||
libssh2-1-dev libtelnet-dev libvncserver-dev \
|
||||
libtelnet-dev libvncserver-dev \
|
||||
libpulse-dev libssl-dev libvorbis-dev libwebp-dev libwebsockets-dev \
|
||||
ghostscript build-essential postgresql-${PG_MAJOR} \
|
||||
ghostscript build-essential libreadline-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Build & install libssh2
|
||||
ADD https://www.libssh2.org/download/libssh2-${LIBSSH2_VER}.tar.gz /tmp
|
||||
RUN tar -xzvf /tmp/libssh2-${LIBSSH2_VER}.tar.gz \
|
||||
&& cd libssh2-${LIBSSH2_VER} \
|
||||
&& ./configure \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& rm -rf /tmp/libssh2-${LIBSSH2_VER}*
|
||||
|
||||
# Build & install postgresql
|
||||
ADD https://ftp.postgresql.org/pub/source/v${PG_VER}/postgresql-${PG_VER}.tar.gz /tmp
|
||||
RUN tar -xzvf /tmp/postgresql-${PG_VER}.tar.gz \
|
||||
&& cd postgresql-${PG_VER} \
|
||||
&& ./configure \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& rm -rf /tmp/postgresql-${PG_VER}*
|
||||
|
||||
RUN useradd postgres
|
||||
|
||||
# Apply the s6-overlay
|
||||
ADD https://github.com/just-containers/s6-overlay/releases/download/v2.2.0.3/s6-overlay-${ARCH}.tar.gz /tmp
|
||||
RUN tar -xzf /tmp/s6-overlay-${ARCH}.tar.gz -C / \
|
||||
&& tar -xzf /tmp/s6-overlay-${ARCH}.tar.gz -C /usr ./bin \
|
||||
&& rm -rf /tmp/s6-overlay-${ARCH}.tar.gz
|
||||
ADD https://github.com/just-containers/s6-overlay/releases/download/v2.2.0.3/s6-overlay-amd64.tar.gz /tmp
|
||||
RUN tar -xzf /tmp/s6-overlay-amd64.tar.gz -C / \
|
||||
&& tar -xzf /tmp/s6-overlay-amd64.tar.gz -C /usr ./bin \
|
||||
&& rm -rf /tmp/s6-overlay-amd64.tar.gz
|
||||
|
||||
RUN mkdir -p ${GUACAMOLE_HOME} \
|
||||
${GUACAMOLE_HOME}/lib \
|
||||
@@ -37,15 +53,14 @@ RUN mkdir -p ${GUACAMOLE_HOME} \
|
||||
WORKDIR ${GUACAMOLE_HOME}
|
||||
|
||||
# Link FreeRDP to where guac expects it to be
|
||||
RUN [ "$ARCH" = "armhf" ] && ln -s /usr/local/lib/freerdp /usr/lib/arm-linux-gnueabihf/freerdp || exit 0
|
||||
RUN [ "$ARCH" = "amd64" ] && ln -s /usr/local/lib/freerdp /usr/lib/x86_64-linux-gnu/freerdp || exit 0
|
||||
|
||||
RUN echo $PATH
|
||||
RUN ln -s /usr/local/lib/freerdp /usr/lib/x86_64-linux-gnu/freerdp || exit 0
|
||||
|
||||
# Install guacamole-server
|
||||
RUN curl -SLO "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/source/guacamole-server-${GUAC_VER}.tar.gz" \
|
||||
|
||||
RUN curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/source/guacamole-server-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-server-${GUAC_VER}.tar.gz \
|
||||
&& cd guacamole-server-${GUAC_VER} \
|
||||
&& export LDFLAGS="-lrt" \
|
||||
&& ./configure --enable-allow-freerdp-snapshots \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
@@ -59,9 +74,9 @@ RUN mkdir ${GUACAMOLE_HOME}/extensions-available
|
||||
# Install guacamole-client and postgres auth adapter
|
||||
RUN set -x \
|
||||
&& rm -rf ${CATALINA_HOME}/webapps/ROOT \
|
||||
&& curl -SLo ${CATALINA_HOME}/webapps/ROOT.war "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-${GUAC_VER}.war" \
|
||||
&& curl -SLo ${CATALINA_HOME}/webapps/ROOT.war "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-${GUAC_VER}.war" \
|
||||
&& curl -SLo ${GUACAMOLE_HOME}/lib/postgresql-42.1.4.jar "https://jdbc.postgresql.org/download/postgresql-42.2.24.jar" \
|
||||
&& curl -SLO "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-auth-jdbc-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-auth-jdbc-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-auth-jdbc-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-auth-jdbc-${GUAC_VER}/postgresql/guacamole-auth-jdbc-postgresql-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions/ \
|
||||
&& cp guacamole-auth-jdbc-${GUAC_VER}/postgresql/guacamole-auth-jdbc-postgresql-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
@@ -70,28 +85,35 @@ RUN set -x \
|
||||
&& cp -R guacamole-auth-jdbc-${GUAC_VER}/postgresql/schema ${GUACAMOLE_HOME}/ \
|
||||
&& rm -rf guacamole-auth-jdbc-${GUAC_VER} guacamole-auth-jdbc-${GUAC_VER}.tar.gz
|
||||
|
||||
|
||||
# add auth-sso to available extensions folder structur differs from other extensions
|
||||
RUN set -xe \
|
||||
&& echo "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-auth-sso-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-auth-sso-${GUAC_VER}.tar.gz" \
|
||||
&& echo "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-auth-sso-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-auth-sso-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-auth-sso-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-auth-sso-${GUAC_VER}/cas/guacamole-auth-sso-cas-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& cp guacamole-auth-sso-${GUAC_VER}/openid/guacamole-auth-sso-openid-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& cp guacamole-auth-sso-${GUAC_VER}/saml/guacamole-auth-sso-saml-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& rm -rf guacamole-auth-sso-${GUAC_VER} guacamole-auth-sso-${GUAC_VER}.tar.gz
|
||||
|
||||
# add vault to available extensions folder structur differs from other extensions
|
||||
RUN set -xe \
|
||||
&& echo "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-vault-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-vault-${GUAC_VER}/ksm/guacamole-vault-ksm-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& rm -rf guacamole-vault-${GUAC_VER} guacamole-vault-${GUAC_VER}.tar.gz
|
||||
|
||||
# Add optional extensions
|
||||
RUN set -xe \
|
||||
&& for i in auth-duo auth-header auth-json auth-ldap auth-quickconnect auth-totp; do \
|
||||
echo "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& for i in auth-duo auth-header auth-json auth-ldap auth-quickconnect auth-totp history-recording-storage; do \
|
||||
echo "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-${i}-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-${i}-${GUAC_VER}/guacamole-${i}-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& rm -rf guacamole-${i}-${GUAC_VER} guacamole-${i}-${GUAC_VER}.tar.gz \
|
||||
;done
|
||||
|
||||
ENV PATH=/usr/lib/postgresql/${PG_MAJOR}/bin:$PATH
|
||||
ENV PATH="/usr/local/pgsql/bin:$PATH"
|
||||
ENV GUACAMOLE_HOME=/config/guacamole
|
||||
|
||||
WORKDIR /config
|
||||
@@ -101,3 +123,4 @@ COPY root /
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT [ "/init" ]
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
FROM library/tomcat:9-jre11-openjdk-bullseye
|
||||
|
||||
ENV GUAC_VER=1.5.4 \
|
||||
GUACAMOLE_HOME=/app/guacamole \
|
||||
PG_VER=9.6.24 \
|
||||
LIBSSH2_VER=1.11.0 \
|
||||
PGDATA=/config/postgres \
|
||||
POSTGRES_USER=guacamole \
|
||||
POSTGRES_DB=guacamole_db
|
||||
|
||||
# Install dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y curl ca-certificates gnupg \
|
||||
libcairo2-dev libjpeg62-turbo-dev libpng-dev libavformat-dev \
|
||||
libossp-uuid-dev libavcodec-dev libavutil-dev \
|
||||
libswscale-dev freerdp2-dev libfreerdp-client2-2 libpango1.0-dev \
|
||||
libtelnet-dev libvncserver-dev \
|
||||
libpulse-dev libssl-dev libvorbis-dev libwebp-dev libwebsockets-dev \
|
||||
ghostscript build-essential libreadline-dev
|
||||
|
||||
# Build & install libssh2
|
||||
ADD https://www.libssh2.org/download/libssh2-${LIBSSH2_VER}.tar.gz /tmp
|
||||
RUN tar -xzvf /tmp/libssh2-${LIBSSH2_VER}.tar.gz \
|
||||
&& cd libssh2-${LIBSSH2_VER} \
|
||||
&& ./configure \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& rm -rf /tmp/libssh2-${LIBSSH2_VER}*
|
||||
|
||||
# Build & install postgresql
|
||||
ADD https://ftp.postgresql.org/pub/source/v${PG_VER}/postgresql-${PG_VER}.tar.gz /tmp
|
||||
RUN tar -xzvf /tmp/postgresql-${PG_VER}.tar.gz \
|
||||
&& cd postgresql-${PG_VER} \
|
||||
&& ./configure \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& rm -rf /tmp/postgresql-${PG_VER}*
|
||||
|
||||
RUN useradd postgres
|
||||
|
||||
# Apply the s6-overlay
|
||||
ADD https://github.com/just-containers/s6-overlay/releases/download/v2.2.0.3/s6-overlay-armhf.tar.gz /tmp
|
||||
RUN tar -xzf /tmp/s6-overlay-armhf.tar.gz -C / \
|
||||
&& tar -xzf /tmp/s6-overlay-armhf.tar.gz -C /usr ./bin \
|
||||
&& rm -rf /tmp/s6-overlay-armhf.tar.gz
|
||||
|
||||
RUN mkdir -p ${GUACAMOLE_HOME} \
|
||||
${GUACAMOLE_HOME}/lib \
|
||||
${GUACAMOLE_HOME}/extensions
|
||||
|
||||
WORKDIR ${GUACAMOLE_HOME}
|
||||
|
||||
# Link FreeRDP to where guac expects it to be
|
||||
RUN ln -s /usr/local/lib/freerdp /usr/lib/arm-linux-gnueabihf/freerdp || exit 0
|
||||
|
||||
# Install guacamole-server
|
||||
|
||||
RUN curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/source/guacamole-server-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-server-${GUAC_VER}.tar.gz \
|
||||
&& cd guacamole-server-${GUAC_VER} \
|
||||
&& export LDFLAGS="-lrt" \
|
||||
&& ./configure --enable-allow-freerdp-snapshots \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
&& cd .. \
|
||||
&& rm -rf guacamole-server-${GUAC_VER}.tar.gz guacamole-server-${GUAC_VER} \
|
||||
&& ldconfig
|
||||
|
||||
# Create directory for extensions
|
||||
RUN mkdir ${GUACAMOLE_HOME}/extensions-available
|
||||
|
||||
# Install guacamole-client and postgres auth adapter
|
||||
RUN set -x \
|
||||
&& rm -rf ${CATALINA_HOME}/webapps/ROOT \
|
||||
&& curl -SLo ${CATALINA_HOME}/webapps/ROOT.war "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-${GUAC_VER}.war" \
|
||||
&& curl -SLo ${GUACAMOLE_HOME}/lib/postgresql-42.1.4.jar "https://jdbc.postgresql.org/download/postgresql-42.2.24.jar" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-auth-jdbc-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-auth-jdbc-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-auth-jdbc-${GUAC_VER}/postgresql/guacamole-auth-jdbc-postgresql-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions/ \
|
||||
&& cp guacamole-auth-jdbc-${GUAC_VER}/postgresql/guacamole-auth-jdbc-postgresql-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& cp guacamole-auth-jdbc-${GUAC_VER}/mysql/guacamole-auth-jdbc-mysql-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& cp guacamole-auth-jdbc-${GUAC_VER}/sqlserver/guacamole-auth-jdbc-sqlserver-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& cp -R guacamole-auth-jdbc-${GUAC_VER}/postgresql/schema ${GUACAMOLE_HOME}/ \
|
||||
&& rm -rf guacamole-auth-jdbc-${GUAC_VER} guacamole-auth-jdbc-${GUAC_VER}.tar.gz
|
||||
|
||||
# add auth-sso to available extensions folder structur differs from other extensions
|
||||
RUN set -xe \
|
||||
&& echo "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-auth-sso-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-auth-sso-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-auth-sso-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-auth-sso-${GUAC_VER}/cas/guacamole-auth-sso-cas-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& cp guacamole-auth-sso-${GUAC_VER}/openid/guacamole-auth-sso-openid-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& cp guacamole-auth-sso-${GUAC_VER}/saml/guacamole-auth-sso-saml-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& rm -rf guacamole-auth-sso-${GUAC_VER} guacamole-auth-sso-${GUAC_VER}.tar.gz
|
||||
|
||||
# add vault to available extensions folder structur differs from other extensions
|
||||
RUN set -xe \
|
||||
&& echo "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-vault-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-vault-${GUAC_VER}/ksm/guacamole-vault-ksm-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& rm -rf guacamole-vault-${GUAC_VER} guacamole-vault-${GUAC_VER}.tar.gz
|
||||
|
||||
# Add optional extensions
|
||||
RUN set -xe \
|
||||
&& for i in auth-duo auth-header auth-json auth-ldap auth-quickconnect auth-totp history-recording-storage; do \
|
||||
echo "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-${i}-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-${i}-${GUAC_VER}/guacamole-${i}-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& rm -rf guacamole-${i}-${GUAC_VER} guacamole-${i}-${GUAC_VER}.tar.gz \
|
||||
;done
|
||||
|
||||
ENV PATH="/usr/local/pgsql/bin:$PATH"
|
||||
ENV GUACAMOLE_HOME=/config/guacamole
|
||||
|
||||
WORKDIR /config
|
||||
|
||||
COPY root /
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT [ "/init" ]
|
||||
+56
-23
@@ -1,31 +1,48 @@
|
||||
FROM arm32v7/tomcat:9-jre11
|
||||
|
||||
ENV ARCH=armhf \
|
||||
GUAC_VER=1.4.0 \
|
||||
ENV GUAC_VER=1.5.4 \
|
||||
GUACAMOLE_HOME=/app/guacamole \
|
||||
PG_MAJOR=9.6 \
|
||||
PG_VER=9.6.24 \
|
||||
LIBSSH2_VER=1.11.0 \
|
||||
PGDATA=/config/postgres \
|
||||
POSTGRES_USER=guacamole \
|
||||
POSTGRES_DB=guacamole_db
|
||||
|
||||
# Install base dependencies
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --allow-unauthenticated \
|
||||
libcairo2-dev libjpeg62-turbo-dev libpng-dev \
|
||||
&& apt-get install -y curl ca-certificates gnupg \
|
||||
libcairo2-dev libjpeg-turbo8-dev libpng-dev libavformat-dev \
|
||||
libossp-uuid-dev libavcodec-dev libavutil-dev \
|
||||
libswscale-dev freerdp2-dev libfreerdp-client2-2 libpango1.0-dev \
|
||||
libssh2-1-dev libtelnet-dev libvncserver-dev \
|
||||
libtelnet-dev libvncserver-dev \
|
||||
libpulse-dev libssl-dev libvorbis-dev libwebp-dev libwebsockets-dev \
|
||||
ghostscript
|
||||
ghostscript build-essential libreadline-dev
|
||||
|
||||
# Install Postgres
|
||||
RUN apt-get install -y postgresql-${PG_MAJOR}
|
||||
# Build & install libssh2
|
||||
ADD https://www.libssh2.org/download/libssh2-${LIBSSH2_VER}.tar.gz /tmp
|
||||
RUN tar -xzvf /tmp/libssh2-${LIBSSH2_VER}.tar.gz \
|
||||
&& cd libssh2-${LIBSSH2_VER} \
|
||||
&& ./configure \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& rm -rf /tmp/libssh2-${LIBSSH2_VER}*
|
||||
|
||||
# Build & install postgresql
|
||||
ADD https://ftp.postgresql.org/pub/source/v${PG_VER}/postgresql-${PG_VER}.tar.gz /tmp
|
||||
RUN tar -xzvf /tmp/postgresql-${PG_VER}.tar.gz \
|
||||
&& cd postgresql-${PG_VER} \
|
||||
&& ./configure \
|
||||
&& make \
|
||||
&& make install \
|
||||
&& rm -rf /tmp/postgresql-${PG_VER}*
|
||||
|
||||
RUN useradd postgres
|
||||
|
||||
# Apply the s6-overlay
|
||||
ADD https://github.com/just-containers/s6-overlay/releases/download/v2.2.0.3/s6-overlay-${ARCH}.tar.gz /tmp
|
||||
RUN tar -xzf /tmp/s6-overlay-${ARCH}.tar.gz -C / \
|
||||
&& tar -xzf /tmp/s6-overlay-${ARCH}.tar.gz -C /usr ./bin \
|
||||
&& rm -rf /tmp/s6-overlay-${ARCH}.tar.gz
|
||||
ADD https://github.com/just-containers/s6-overlay/releases/download/v2.2.0.3/s6-overlay-armhf.tar.gz /tmp
|
||||
RUN tar -xzf /tmp/s6-overlay-armhf.tar.gz -C / \
|
||||
&& tar -xzf /tmp/s6-overlay-armhf.tar.gz -C /usr ./bin \
|
||||
&& rm -rf /tmp/s6-overlay-armhf.tar.gz
|
||||
|
||||
RUN mkdir -p ${GUACAMOLE_HOME} \
|
||||
${GUACAMOLE_HOME}/lib \
|
||||
@@ -34,11 +51,10 @@ RUN mkdir -p ${GUACAMOLE_HOME} \
|
||||
WORKDIR ${GUACAMOLE_HOME}
|
||||
|
||||
# Link FreeRDP to where guac expects it to be
|
||||
RUN [ "$ARCH" = "armhf" ] && ln -s /usr/local/lib/freerdp /usr/lib/arm-linux-gnueabihf/freerdp || exit 0
|
||||
RUN [ "$ARCH" = "amd64" ] && ln -s /usr/local/lib/freerdp /usr/lib/x86_64-linux-gnu/freerdp || exit 0
|
||||
RUN ln -s /usr/local/lib/freerdp /usr/lib/arm-linux-gnueabihf/freerdp || exit 0
|
||||
|
||||
# Install guacamole-server
|
||||
RUN curl -SLOk "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/source/guacamole-server-${GUAC_VER}.tar.gz" \
|
||||
RUN curl -SLOk "https://archive.apache.org/dist/guacamole/${GUAC_VER}/source/guacamole-server-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-server-${GUAC_VER}.tar.gz \
|
||||
&& cd guacamole-server-${GUAC_VER} \
|
||||
&& ./configure --enable-allow-freerdp-snapshots \
|
||||
@@ -51,26 +67,43 @@ RUN curl -SLOk "http://apache.org/dyn/closer.cgi?action=download&filename=guacam
|
||||
# Install guacamole-client and postgres auth adapter
|
||||
RUN set -x \
|
||||
&& rm -rf ${CATALINA_HOME}/webapps/ROOT \
|
||||
&& curl -SLko ${CATALINA_HOME}/webapps/ROOT.war "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-${GUAC_VER}.war" \
|
||||
&& curl -SLko ${CATALINA_HOME}/webapps/ROOT.war "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-${GUAC_VER}.war" \
|
||||
&& curl -SLko ${GUACAMOLE_HOME}/lib/postgresql-42.1.4.jar "https://jdbc.postgresql.org/download/postgresql-42.2.24.jar" \
|
||||
&& curl -SLkO "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-auth-jdbc-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLkO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-auth-jdbc-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-auth-jdbc-${GUAC_VER}.tar.gz \
|
||||
&& cp -R guacamole-auth-jdbc-${GUAC_VER}/postgresql/guacamole-auth-jdbc-postgresql-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions/ \
|
||||
&& cp -R guacamole-auth-jdbc-${GUAC_VER}/postgresql/schema ${GUACAMOLE_HOME}/ \
|
||||
&& rm -rf guacamole-auth-jdbc-${GUAC_VER} guacamole-auth-jdbc-${GUAC_VER}.tar.gz
|
||||
|
||||
# add auth-sso to available extensions folder structur differs from other extensions
|
||||
RUN set -xe \
|
||||
&& echo "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-auth-sso-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-auth-sso-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-auth-sso-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-auth-sso-${GUAC_VER}/cas/guacamole-auth-sso-cas-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& cp guacamole-auth-sso-${GUAC_VER}/openid/guacamole-auth-sso-openid-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& cp guacamole-auth-sso-${GUAC_VER}/saml/guacamole-auth-sso-saml-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& rm -rf guacamole-auth-sso-${GUAC_VER} guacamole-auth-sso-${GUAC_VER}.tar.gz
|
||||
|
||||
# add vault to available extensions folder structur differs from other extensions
|
||||
RUN set -xe \
|
||||
&& echo "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-vault-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-vault-${GUAC_VER}/ksm/guacamole-vault-ksm-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& rm -rf guacamole-vault-${GUAC_VER} guacamole-vault-${GUAC_VER}.tar.gz
|
||||
|
||||
# Add optional extensions
|
||||
RUN set -xe \
|
||||
&& mkdir ${GUACAMOLE_HOME}/extensions-available \
|
||||
&& for i in auth-ldap auth-duo auth-header auth-cas auth-openid auth-quickconnect auth-totp; do \
|
||||
echo "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLOk "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& for i in auth-duo auth-header auth-json auth-ldap auth-quickconnect auth-totp history-recording-storage; do \
|
||||
echo "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \
|
||||
&& tar -xzf guacamole-${i}-${GUAC_VER}.tar.gz \
|
||||
&& cp guacamole-${i}-${GUAC_VER}/guacamole-${i}-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions-available/ \
|
||||
&& rm -rf guacamole-${i}-${GUAC_VER} guacamole-${i}-${GUAC_VER}.tar.gz \
|
||||
;done
|
||||
|
||||
ENV PATH=/usr/lib/postgresql/${PG_MAJOR}/bin:$PATH
|
||||
ENV PATH="/usr/local/pgsql/bin:$PATH"
|
||||
ENV GUACAMOLE_HOME=/config/guacamole
|
||||
|
||||
WORKDIR /config
|
||||
|
||||
@@ -56,13 +56,20 @@ docker run \
|
||||
|
||||
Currently the available extensions are:
|
||||
|
||||
* auth-ldap - [LDAP Authentication](https://guacamole.apache.org/doc/gug/ldap-auth.html)
|
||||
* auth-duo - [Duo two-factor authentication](https://guacamole.apache.org/doc/gug/duo-auth.html)
|
||||
* auth-header - [HTTP header authentication](https://guacamole.apache.org/doc/gug/header-auth.html)
|
||||
* auth-cas - [CAS Authentication](https://guacamole.apache.org/doc/gug/cas-auth.html)
|
||||
* auth-openid - [OpenID Connect authentication](https://guacamole.apache.org/doc/gug/openid-auth.html)
|
||||
* auth-totp - [TOTP two-factor authentication](https://guacamole.apache.org/doc/gug/totp-auth.html)
|
||||
* auth-jdbc-mysql - [MySQL Authentication](https://guacamole.apache.org/doc/gug/jdbc-auth.html)
|
||||
* auth-jdbc-postgresql - [PostgreSQL Authentication](https://guacamole.apache.org/doc/gug/jdbc-auth.html)
|
||||
* auth-jdbc-sqlserver - [SQL Server Authentication](https://guacamole.apache.org/doc/gug/jdbc-auth.html)
|
||||
* auth-json - [Encrypted JSON Authentication](https://guacamole.apache.org/doc/gug/json-auth.html)
|
||||
* auth-ldap - [LDAP Authentication](https://guacamole.apache.org/doc/gug/ldap-auth.html)
|
||||
* auth-quickconnect - [Ad-hoc connections extension](https://guacamole.apache.org/doc/gug/adhoc-connections.html)
|
||||
* auth-sso-cas - [CAS Authentication](https://guacamole.apache.org/doc/gug/cas-auth.html)
|
||||
* auth-sso-openid - [OpenID Authentication](https://guacamole.apache.org/doc/gug/openid-auth.html)
|
||||
* auth-sso-saml - [SAML Authentication](https://guacamole.apache.org/doc/gug/saml-auth.html)
|
||||
* auth-totp - [TOTP two-factor authentication](https://guacamole.apache.org/doc/gug/totp-auth.html)
|
||||
* history-recording-storage - [Session Recording Playback](https://guacamole.apache.org/doc/gug/recording-playback.html#)
|
||||
* vault - [Retrieving secrets from a vault](https://guacamole.apache.org/doc/gug/vault.html)
|
||||
|
||||
You should only enable the extensions you require, if an extensions is not configured correctly in the `guacamole.properties` file it may prevent the system from loading. See the [official documentation](https://guacamole.apache.org/doc/gug/) for more details.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user