FROM arm32v7/tomcat:7-jre8 ENV ARCH=armhf \ GUAC_VER=0.9.13-incubating \ 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 \ libcairo2-dev libjpeg62-turbo-dev libpng-dev \ libossp-uuid-dev libavcodec-dev libavutil-dev \ libswscale-dev libfreerdp-dev libpango1.0-dev \ libssh2-1-dev libtelnet-dev libvncserver-dev \ libpulse-dev libssl-dev libvorbis-dev libwebp-dev \ ghostscript postgresql-${PG_MAJOR} \ && rm -rf /var/lib/apt/lists/* # 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 "https://sourceforge.net/projects/guacamole/files/current/source/guacamole-server-${GUAC_VER}.tar.gz" \ && tar -xzf guacamole-server-${GUAC_VER}.tar.gz \ && cd guacamole-server-${GUAC_VER} \ && ./configure \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ && cd .. \ && rm -rf guacamole-server-${GUAC_VER}.tar.gz guacamole-server-${GUAC_VER} \ && ldconfig # Install guacamole-client and postgres auth adapter RUN rm -rf ${CATALINA_HOME}/webapps/ROOT \ && curl -SLo ${CATALINA_HOME}/webapps/ROOT.war "https://sourceforge.net/projects/guacamole/files/current/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 https://sourceforge.net/projects/guacamole/files/current/extensions/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-0.9.13-incubating.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 optional extensions RUN mkdir ${GUACAMOLE_HOME}/extensions-available \ && for i in auth-ldap auth-duo auth-header auth-noauth auth-cas; do \ echo "https://sourceforge.net/projects/guacamole/files/current/extensions/guacamole-${i}-${GUAC_VER}.tar.gz" \ && curl -SLO "https://sourceforge.net/projects/guacamole/files/current/extensions/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 / ENTRYPOINT [ "/init" ]