Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiplatform image #38

Merged
merged 3 commits into from
Feb 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/workflows/build-latest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: build-latest

on:
push:
# branches:
# - 'main'
paths-ignore:
- '**/README.md'

jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: false
tags: jwetzell/guacamole:latest
cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64,linux/arm/v7
45 changes: 25 additions & 20 deletions Dockerfile.amd64 → Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,32 @@
FROM tomcat:9.0.85-jre11

ENV ARCH=amd64 \
GUAC_VER=1.5.4 \
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



# Add user for postgres
RUN useradd postgres

# Cleanup default tomcat stuff
RUN rm -rf /usr/local/tomcat/webapps.dist

# Apply the s6-overlay
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then ARCHITECTURE=amd64; elif [ "$TARGETPLATFORM" = "linux/arm/v7" ]; then ARCHITECTURE=arm; elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then ARCHITECTURE=aarch64; else ARCHITECTURE=amd64; 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 \
Expand All @@ -22,8 +38,12 @@ RUN apt-get update \
ghostscript build-essential libreadline-dev \
&& rm -rf /var/lib/apt/lists/*

# Build & install libssh2
# 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 \
Expand All @@ -32,25 +52,13 @@ RUN tar -xzvf /tmp/libssh2-${LIBSSH2_VER}.tar.gz \
&& 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-amd64-installer /tmp/
RUN chmod +x /tmp/s6-overlay-amd64-installer && /tmp/s6-overlay-amd64-installer / \
&& rm -rf /tmp/s6-overlay-amd64-installer


RUN mkdir -p ${GUACAMOLE_HOME} \
${GUACAMOLE_HOME}/lib \
${GUACAMOLE_HOME}/extensions

WORKDIR ${GUACAMOLE_HOME}

Expand All @@ -74,16 +82,13 @@ RUN curl -SLO "https://archive.apache.org/dist/guacamole/${GUAC_VER}/source/guac
RUN mkdir ${GUACAMOLE_HOME}/extensions-available

# Install guacamole-client and postgres auth adapter
RUN set -x \
RUN set -xe \
&& 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

Expand All @@ -97,7 +102,7 @@ RUN set -xe \
&& 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
# 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" \
Expand Down
124 changes: 0 additions & 124 deletions Dockerfile.arm64

This file was deleted.

114 changes: 0 additions & 114 deletions Dockerfile.raspberry-pi

This file was deleted.