From 79b8a4a53807cc87ce369a20d40382903860d1fb Mon Sep 17 00:00:00 2001 From: Joel Wetzell Date: Thu, 8 Jun 2023 14:18:17 -0500 Subject: [PATCH] split dockerfiles and update URLs --- Dockerfile => Dockerfile.amd64 | 31 +++++----- Dockerfile.arm64 | 110 +++++++++++++++++++++++++++++++++ Dockerfile.raspberry-pi | 32 +++++----- 3 files changed, 141 insertions(+), 32 deletions(-) rename Dockerfile => Dockerfile.amd64 (74%) create mode 100644 Dockerfile.arm64 diff --git a/Dockerfile b/Dockerfile.amd64 similarity index 74% rename from Dockerfile rename to Dockerfile.amd64 index 67b7bd1..dcc7f98 100644 --- a/Dockerfile +++ b/Dockerfile.amd64 @@ -26,10 +26,10 @@ RUN apt-get update \ # 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 \ @@ -38,13 +38,13 @@ 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/x86_64-linux-gnu/freerdp || exit 0 RUN echo $PATH # 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} \ && ./configure --enable-allow-freerdp-snapshots \ @@ -60,9 +60,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/ \ @@ -73,8 +73,8 @@ RUN set -x \ # 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/ \ @@ -83,8 +83,8 @@ RUN set -xe \ # add vault to available extensions folder structur differs from other extensions RUN set -xe \ - && echo "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \ - && curl -SLO "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \ + && 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 @@ -92,8 +92,8 @@ RUN set -xe \ # 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://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" \ + 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 \ @@ -109,3 +109,4 @@ COPY root / EXPOSE 8080 ENTRYPOINT [ "/init" ] + diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 new file mode 100644 index 0000000..3e0d251 --- /dev/null +++ b/Dockerfile.arm64 @@ -0,0 +1,110 @@ +FROM library/tomcat:9-jre11-openjdk-bullseye + +ENV GUAC_VER=1.5.2 \ + GUACAMOLE_HOME=/app/guacamole \ + PG_MAJOR=9.6 \ + PGDATA=/config/postgres \ + POSTGRES_USER=guacamole \ + POSTGRES_DB=guacamole_db + +# Add Postgres Repository +RUN apt-get update && apt-get install -y curl ca-certificates gnupg +RUN curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg > /dev/null +RUN echo "deb http://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" >> /etc/apt/sources.list.d/pgdg.list + +# Install dependencies +RUN apt-get update \ + && apt-get install -y \ + libcairo2-dev libjpeg62-turbo-dev libpng-dev libavformat-dev libwebsockets-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 \ + libpulse-dev libssl-dev libvorbis-dev libwebp-dev libwebsockets-dev \ + ghostscript build-essential postgresql-${PG_MAJOR} \ + && rm -rf /var/lib/apt/lists/* + + +# 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 + +RUN echo $PATH + +# 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} \ + && ./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/lib/postgresql/${PG_MAJOR}/bin:$PATH +ENV GUACAMOLE_HOME=/config/guacamole + +WORKDIR /config + +COPY root / + +EXPOSE 8080 + +ENTRYPOINT [ "/init" ] diff --git a/Dockerfile.raspberry-pi b/Dockerfile.raspberry-pi index 36d3666..dda94aa 100644 --- a/Dockerfile.raspberry-pi +++ b/Dockerfile.raspberry-pi @@ -1,7 +1,6 @@ FROM arm32v7/tomcat:9-jre11 -ENV ARCH=armhf \ - GUAC_VER=1.5.1 \ +ENV GUAC_VER=1.5.2 \ GUACAMOLE_HOME=/app/guacamole \ PG_MAJOR=9.6 \ PGDATA=/config/postgres \ @@ -22,10 +21,10 @@ RUN apt-get update \ RUN apt-get install -y postgresql-${PG_MAJOR} # 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 +33,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,9 +49,9 @@ 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}/ \ @@ -61,8 +59,8 @@ RUN set -x \ # 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/ \ @@ -71,8 +69,8 @@ RUN set -xe \ # add vault to available extensions folder structur differs from other extensions RUN set -xe \ - && echo "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \ - && curl -SLO "https://dlcdn.apache.org/guacamole/${GUAC_VER}/binary/guacamole-vault-${GUAC_VER}.tar.gz" \ + && 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 @@ -80,8 +78,8 @@ RUN set -xe \ # 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://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" \ + 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 \