FROM tomcat:9.0.120-jdk17-temurin-noble ARG TARGETPLATFORM ENV GUAC_VER=1.6.0 \ GUACAMOLE_HOME=/app/guacamole \ PG_VER=9.6.24 \ LIBSSH2_VER=1.11.0 \ PGDATA=/config/postgres \ POSTGRES_USER=guacamole \ POSTGRES_DB=guacamole_db # Add user for postgres RUN useradd postgres # Cleanup default tomcat stuff RUN rm -rf /usr/local/tomcat/webapps.dist RUN echo $TARGETPLATFORM # Apply the s6-overlay RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then ARCHITECTURE=amd64; elif [ "$TARGETPLATFORM" = "linux/arm/v7" ]; then ARCHITECTURE=armhf; elif [ "$TARGETPLATFORM" = "linux/arm/v8" ]; then ARCHITECTURE=aarch64; elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then ARCHITECTURE=aarch64; fi \ && curl -sS -L -O --output-dir /tmp/ --create-dirs "https://github.com/just-containers/s6-overlay/releases/download/v2.2.0.3/s6-overlay-${ARCHITECTURE}-installer" \ && chmod +x /tmp/s6-overlay-${ARCHITECTURE}-installer && /tmp/s6-overlay-${ARCHITECTURE}-installer / \ && rm -rf /tmp/s6-overlay-${ARCHITECTURE}-installer # make dirs for guacamole install RUN mkdir -p ${GUACAMOLE_HOME} \ ${GUACAMOLE_HOME}/lib \ ${GUACAMOLE_HOME}/extensions # Install dependencies RUN apt-get update \ && 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 libpango1.0-dev \ libtelnet-dev libvncserver-dev \ libpulse-dev libssl-dev libvorbis-dev libwebp-dev libwebsockets-dev \ ghostscript build-essential libreadline-dev \ && rm -rf /var/lib/apt/lists/* # Download libssh2 and postgresql source ADD https://www.libssh2.org/download/libssh2-${LIBSSH2_VER}.tar.gz /tmp ADD https://ftp.postgresql.org/pub/source/v${PG_VER}/postgresql-${PG_VER}.tar.gz /tmp # Build & install libssh2 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 RUN tar -xzvf /tmp/postgresql-${PG_VER}.tar.gz \ && cd postgresql-${PG_VER} \ && ./configure \ && make \ && make install \ && rm -rf /tmp/postgresql-${PG_VER}*