diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 30a0b0b..0000000 --- a/.github/stale.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 30 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 5 -# Issues with these labels will never be considered stale -exemptLabels: - - pinned - - security -# Label to use when marking an issue as stale -staleLabel: stale -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index b702875..5b7d26a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,16 @@ FROM library/tomcat:9-jre11 ENV ARCH=amd64 \ - GUAC_VER=1.3.0 \ + GUAC_VER=1.4.0 \ GUACAMOLE_HOME=/app/guacamole \ PG_MAJOR=9.6 \ PGDATA=/config/postgres \ POSTGRES_USER=guacamole \ POSTGRES_DB=guacamole_db -# Apply the s6-overlay - -RUN curl -SLO "https://github.com/just-containers/s6-overlay/releases/download/v1.20.0.0/s6-overlay-${ARCH}.tar.gz" \ - && tar -xzf s6-overlay-${ARCH}.tar.gz -C / \ - && tar -xzf s6-overlay-${ARCH}.tar.gz -C /usr ./bin \ - && rm -rf s6-overlay-${ARCH}.tar.gz \ - && mkdir -p ${GUACAMOLE_HOME} \ - ${GUACAMOLE_HOME}/lib \ - ${GUACAMOLE_HOME}/extensions - -WORKDIR ${GUACAMOLE_HOME} +# Add Postgres Repository +RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" >> /etc/apt/sources.list.d/pgdg.list +RUN wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | apt-key add - # Install dependencies RUN apt-get update && apt-get install -y \ @@ -27,13 +19,28 @@ RUN apt-get update && apt-get install -y \ 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 postgresql-${PG_MAJOR} \ + 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-${ARCH}.tar.gz /tmp +RUN tar -xzf /tmp/s6-overlay-${ARCH}.tar.gz -C / +RUN tar -xzf /tmp/s6-overlay-${ARCH}.tar.gz -C /usr ./bin +RUN rm -rf /tmp/s6-overlay-${ARCH}.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 [ "$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 + # 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" \ && tar -xzf guacamole-server-${GUAC_VER}.tar.gz \ @@ -49,7 +56,7 @@ RUN curl -SLO "http://apache.org/dyn/closer.cgi?action=download&filename=guacamo 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 ${GUACAMOLE_HOME}/lib/postgresql-42.1.4.jar "https://jdbc.postgresql.org/download/postgresql-42.1.4.jar" \ + && 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" \ && 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/ \ @@ -60,8 +67,8 @@ RUN set -x \ 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 "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \ - && curl -SLO "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \ + 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" \ && 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 \ diff --git a/Dockerfile.raspberry-pi b/Dockerfile.raspberry-pi index 16953d1..7bdaf2a 100644 --- a/Dockerfile.raspberry-pi +++ b/Dockerfile.raspberry-pi @@ -1,27 +1,16 @@ FROM arm32v5/tomcat:9-jre11 ENV ARCH=armhf \ - GUAC_VER=1.3.0 \ + GUAC_VER=1.4.0 \ GUACAMOLE_HOME=/app/guacamole \ PG_MAJOR=9.6 \ PGDATA=/config/postgres \ POSTGRES_USER=guacamole \ POSTGRES_DB=guacamole_db -# Apply the s6-overlay - -RUN curl -SLO "https://github.com/just-containers/s6-overlay/releases/download/v1.20.0.0/s6-overlay-${ARCH}.tar.gz" \ - && tar -xzf s6-overlay-${ARCH}.tar.gz -C / \ - && tar -xzf s6-overlay-${ARCH}.tar.gz -C /usr ./bin \ - && rm -rf s6-overlay-${ARCH}.tar.gz \ - && mkdir -p ${GUACAMOLE_HOME} \ - ${GUACAMOLE_HOME}/lib \ - ${GUACAMOLE_HOME}/extensions - -WORKDIR ${GUACAMOLE_HOME} # Install dependencies -RUN apt-get update && apt-get install -y \ +RUN apt-get update && apt-get install -y --allow-unauthenticated \ libcairo2-dev libjpeg62-turbo-dev libpng-dev \ libossp-uuid-dev libavcodec-dev libavutil-dev \ libswscale-dev freerdp2-dev libfreerdp-client2-2 libpango1.0-dev \ @@ -30,12 +19,24 @@ RUN apt-get update && apt-get install -y \ ghostscript 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-${ARCH}.tar.gz /tmp +RUN tar -xzf /tmp/s6-overlay-${ARCH}.tar.gz -C / +RUN tar -xzf /tmp/s6-overlay-${ARCH}.tar.gz -C /usr ./bin +RUN rm -rf /tmp/s6-overlay-${ARCH}.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 [ "$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 # 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 -SLOk "http://apache.org/dyn/closer.cgi?action=download&filename=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 \ @@ -48,9 +49,9 @@ RUN curl -SLO "http://apache.org/dyn/closer.cgi?action=download&filename=guacamo # 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 ${GUACAMOLE_HOME}/lib/postgresql-42.1.4.jar "https://jdbc.postgresql.org/download/postgresql-42.1.4.jar" \ - && curl -SLO "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-auth-jdbc-${GUAC_VER}.tar.gz" \ + && 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 ${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" \ && 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}/ \ @@ -60,8 +61,8 @@ RUN set -x \ 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 "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \ - && curl -SLO "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-${i}-${GUAC_VER}.tar.gz" \ + 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" \ && 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 \ diff --git a/README.md b/README.md index 9660b8c..50bf749 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -**:warning: This project is now archived and no longer supported. Please contact me if you maintain a replacement and would like me to link to your repo.** - # Docker Guacamole +**THIS REPO IS A CONTINUATION OF [oznu/docker-guacamole](https://github.com/oznu/docker-guacamole).** + A Docker Container for [Apache Guacamole](https://guacamole.apache.org/), a client-less remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH over HTML5. This image will run on most platforms that support Docker including Docker for Mac, Docker for Windows, Synology DSM and Raspberry Pi 3 boards. @@ -93,4 +93,4 @@ Copyright (C) 2017-2020 oznu This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU General Public License](./LICENSE) for more details. \ No newline at end of file +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU General Public License](./LICENSE) for more details. diff --git a/root/etc/services.d/guacd/run b/root/etc/services.d/guacd/run index da9e903..af8ef3a 100644 --- a/root/etc/services.d/guacd/run +++ b/root/etc/services.d/guacd/run @@ -1,4 +1,4 @@ #!/usr/bin/with-contenv sh echo "Starting guacamole guacd..." -s6-setuidgid root guacd -f +s6-setuidgid root guacd -f -b 127.0.0.1