Skip to content

Commit 08dbe22

Browse files
committed
Merge branch 'dev'
2 parents e43883f + 270cc5e commit 08dbe22

File tree

2 files changed

+101
-100
lines changed

2 files changed

+101
-100
lines changed

.github/workflows/docker-image-dev.yml

+32-30
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,67 @@
11
name: Docker Image CI for dev
22

33
on:
4-
# Controls when the workflow will run
54
schedule:
6-
- cron: '35 2 * * *'
5+
- cron: '35 2 * * 0' # Runs every Sunday at 2:35 AM
76
push:
8-
branches: [ dev ]
7+
branches: [ main ]
98

10-
11-
# permissions are needed if pushing to ghcr.io
129
permissions:
1310
packages: write
1411

1512
jobs:
1613
build:
17-
runs-on: ubuntu-latest
14+
runs-on: ubuntu-22.04
15+
1816
steps:
19-
# Get the repository's code
2017
- name: Checkout
2118
uses: actions/checkout@v4
2219
with:
23-
ref: dev
24-
25-
# https://github.com/docker/setup-qemu-action
20+
ref: main
21+
2622
- name: Set up QEMU
2723
uses: docker/setup-qemu-action@v3
28-
29-
# https://github.com/docker/setup-buildx-action
24+
with:
25+
platforms: linux/amd64,linux/arm64,linux/ppc64le
26+
3027
- name: Set up Docker Buildx
3128
id: buildx
3229
uses: docker/setup-buildx-action@v3
30+
with:
31+
version: latest
32+
platforms: linux/amd64,linux/arm64,linux/ppc64le
33+
driver-opts: |
34+
image=moby/buildkit:latest
3335
3436
- name: Cache Docker layers
3537
uses: actions/cache@v4
3638
with:
3739
path: /tmp/.buildx-cache
38-
# Key is named differently to avoid collision
39-
key: ${{ runner.os }}-multi-buildx-${{ github.sha }}
40+
key: ${{ runner.os }}-buildx-${{ github.sha }}-multi-arch-${{ github.run_id }}
4041
restore-keys: |
41-
${{ runner.os }}-multi-buildx
42-
43-
44-
45-
# Push to Docker Hub
42+
${{ runner.os }}-buildx-multi-arch-
43+
4644
- name: Login to Docker Hub
4745
if: github.event_name != 'pull_request'
4846
uses: docker/login-action@v3
4947
with:
5048
username: ${{ secrets.DOCKER_USERNAME }}
5149
password: ${{ secrets.DOCKER_PASSWORD }}
52-
50+
51+
- name: Login to GitHub Container Registry
52+
uses: docker/login-action@v3
53+
with:
54+
registry: ghcr.io
55+
username: ${{ github.repository_owner }}
56+
password: ${{ secrets.GITHUB_TOKEN }}
57+
5358
- name: Docker meta
54-
id: guac
59+
id: meta
5560
uses: docker/metadata-action@v5
5661
with:
57-
# list of Docker images to use as base name for tags
5862
images: |
5963
flcontainers/guacamole
60-
# Docker tags based on the following events/attributes
64+
ghcr.io/${{ github.repository }}
6165
tags: |
6266
type=schedule,pattern=testing
6367
type=raw,value=testing
@@ -68,15 +72,13 @@ jobs:
6872
uses: docker/build-push-action@v6
6973
with:
7074
context: .
71-
platforms: linux/amd64,linux/arm64/v8,linux/ppc64le
75+
platforms: linux/amd64,linux/arm64,linux/ppc64le
7276
push: ${{ github.event_name != 'pull_request' }}
73-
tags: ${{ steps.guac.outputs.tags }}
74-
labels: ${{ steps.guac.outputs.labels }}
77+
tags: ${{ steps.meta.outputs.tags }}
78+
labels: ${{ steps.meta.outputs.labels }}
7579
cache-from: type=local,src=/tmp/.buildx-cache
76-
# Note the mode=max here
77-
# More: https://github.com/moby/buildkit#--export-cache-options
78-
# And: https://github.com/docker/buildx#--cache-tonametypetypekeyvalue
79-
cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new
80+
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max
81+
outputs: type=registry
8082

8183
- name: Move cache
8284
run: |

Dockerfile

+69-70
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
ARG ALPINE_BASE_IMAGE=3.19
2+
ARG TARGETPLATFORM
3+
ARG BUILDPLATFORM
4+
5+
# Use buildx native support for multi-arch builds
26
FROM alpine:${ALPINE_BASE_IMAGE} AS builder
37

48
ARG VERSION="1.5.5"
5-
ARG TARGETPLATFORM
69

710
# FreeRDP version (default to version 3)
811
ARG FREERDP_VERSION=2
@@ -11,35 +14,49 @@ ENV \
1114
GUAC_VER=${VERSION}
1215

1316
# Install build dependencies
14-
RUN apk add --no-cache \
15-
alsa-lib-dev \
16-
alsa-tools-dev \
17-
autoconf \
18-
automake \
19-
build-base \
20-
cairo-dev \
21-
cmake \
22-
cups-dev \
23-
faac-dev \
24-
faad2-dev \
25-
ffmpeg4-dev \
26-
git \
27-
grep \
28-
gsm-dev \
29-
gstreamer-dev \
30-
libjpeg-turbo-dev \
31-
libpng-dev \
32-
libtool \
33-
libusb-dev \
34-
libwebp-dev \
35-
libxkbfile-dev \
36-
make \
37-
openh264-dev \
38-
openssl-dev \
39-
pango-dev \
40-
pcsc-lite-dev \
41-
pulseaudio-dev \
42-
util-linux-dev
17+
RUN apk add --no-cache \
18+
alsa-lib-dev \
19+
alsa-tools-dev \
20+
autoconf \
21+
automake \
22+
bsd-compat-headers \
23+
build-base \
24+
cairo-dev \
25+
cmake \
26+
cups-dev \
27+
faac-dev \
28+
faad2-dev \
29+
ffmpeg4-dev \
30+
fuse3-dev \
31+
git \
32+
grep \
33+
gsm-dev \
34+
gst-plugins-base-dev \
35+
gstreamer-dev \
36+
krb5-dev \
37+
libjpeg-turbo-dev \
38+
libpng-dev \
39+
libtool \
40+
libusb-dev \
41+
libwebp-dev \
42+
libxcursor-dev \
43+
libxdamage-dev \
44+
libxi-dev \
45+
libxinerama-dev \
46+
libxkbcommon-dev \
47+
libxkbfile-dev \
48+
libxv-dev \
49+
linux-headers \
50+
make \
51+
openh264-dev \
52+
openssl-dev>3 \
53+
pango-dev \
54+
pcsc-lite-dev \
55+
pulseaudio-dev \
56+
samurai \
57+
uriparser-dev \
58+
util-linux-dev \
59+
wayland-dev
4360

4461

4562
# Copy source to container for sake of build
@@ -73,42 +90,15 @@ ARG WITH_LIBWEBSOCKETS='v\d+(\.\d+)+'
7390
#
7491

7592
ARG FREERDP_OPTS_COMMON="\
93+
-DALLOW_IN_SOURCE_BUILD=ON \
7694
-DBUILTIN_CHANNELS=OFF \
77-
-DCHANNEL_URBDRC=OFF \
78-
-DWITH_ALSA=ON \
79-
-DWITH_CAIRO=ON \
80-
-DWITH_CHANNELS=ON \
81-
-DWITH_CLIENT=ON \
82-
-DWITH_CUPS=ON \
83-
-DWITH_DIRECTFB=OFF \
84-
-DWITH_FFMPEG=ON \
85-
-DWITH_GSM=ON \
86-
-DWITH_GSSAPI=OFF \
87-
-DWITH_IPP=OFF \
8895
-DWITH_JPEG=ON \
89-
-DWITH_LIBSYSTEMD=OFF \
90-
-DWITH_MANPAGES=OFF \
9196
-DWITH_OPENH264=ON \
92-
-DWITH_OPENSSL=ON \
93-
-DWITH_OSS=OFF \
94-
-DWITH_PCSC=ON \
95-
-DWITH_PULSE=ON \
96-
-DWITH_SERVER=OFF \
97-
-DWITH_SERVER_INTERFACE=OFF \
98-
-DWITH_SHADOW_MAC=OFF \
99-
-DWITH_SHADOW_X11=OFF \
100-
-DWITH_WAYLAND=OFF \
101-
-DWITH_X11=OFF \
102-
-DWITH_X264=OFF \
103-
-DWITH_XCURSOR=ON \
104-
-DWITH_XEXT=ON \
105-
-DWITH_XI=OFF \
106-
-DWITH_XINERAMA=OFF \
107-
-DWITH_XKBFILE=ON \
108-
-DWITH_XRENDER=OFF \
109-
-DWITH_XTEST=OFF \
110-
-DWITH_XV=OFF \
111-
-DWITH_ZLIB=ON"
97+
-DWITH_GSM=ON \
98+
-DWITH_FAAD2=ON \
99+
-DWITH_FAAC=ON \
100+
-DWITH_GSSAPI=ON \
101+
-DWITH_LIBSYSTEMD=OFF"
112102

113103
ARG GUACAMOLE_SERVER_OPTS="\
114104
--disable-guaclog"
@@ -134,11 +124,20 @@ ARG LIBWEBSOCKETS_OPTS="\
134124
-DLWS_WITH_STATIC=OFF"
135125

136126
# Build guacamole-server and its core protocol library dependencies
137-
RUN echo "$TARGETPLATFORM"
138-
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; \
139-
then FREERDP_OPTS="${FREERDP_OPTS_COMMON} -DWITH_SSE2=ON" && echo "SSE2 active"; \
140-
else FREERDP_OPTS="${FREERDP_OPTS_COMMON} -DWITH_SSE2=OFF" && echo "SSE2 disabled"; \
141-
fi && \
127+
RUN case "${TARGETPLATFORM}" in \
128+
"linux/amd64") \
129+
export FREERDP_OPTS="${FREERDP_OPTS_COMMON} -DWITH_SSE2=ON" \
130+
;; \
131+
"linux/arm64") \
132+
export FREERDP_OPTS="${FREERDP_OPTS_COMMON} -DWITH_SSE2=OFF" \
133+
;; \
134+
"linux/ppc64le") \
135+
export FREERDP_OPTS="${FREERDP_OPTS_COMMON} -DWITH_SSE2=OFF" \
136+
;; \
137+
*) \
138+
export FREERDP_OPTS="${FREERDP_OPTS_COMMON}" \
139+
;; \
140+
esac && \
142141
${BUILD_DIR}/src/guacd-docker/bin/build-all.sh
143142

144143
# Record the packages of all runtime library dependencies
@@ -177,7 +176,7 @@ ENV \
177176
GUACAMOLE_HOME=/app/guacamole \
178177
CATALINA_HOME=/opt/tomcat \
179178
PG_MAJOR=13 \
180-
TOMCAT_VER=9.0.91 \
179+
TOMCAT_VER=9.0.98 \
181180
PGDATA=/config/postgres \
182181
POSTGRES_USER=guacamole \
183182
POSTGRES_DB=guacamole_db
@@ -246,7 +245,7 @@ chmod 777 -R ${CATALINA_HOME}/logs/
246245
RUN set -x \
247246
&& rm -rf ${CATALINA_HOME}/webapps/ROOT \
248247
&& curl -SLo ${CATALINA_HOME}/webapps/ROOT.war "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-${GUAC_VER}.war" \
249-
&& curl -SLo ${GUACAMOLE_HOME}/lib/postgresql-42.6.0.jar "https://jdbc.postgresql.org/download/postgresql-42.6.0.jar" \
248+
&& curl -SLo ${GUACAMOLE_HOME}/lib/postgresql-42.6.2.jar "https://jdbc.postgresql.org/download/postgresql-42.6.2.jar" \
250249
&& curl -SLo ${GUACAMOLE_HOME}/guacamole-auth-jdbc-${GUAC_VER}.tar.gz "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUAC_VER}/binary/guacamole-auth-jdbc-${GUAC_VER}.tar.gz" \
251250
&& tar -xzf ${GUACAMOLE_HOME}/guacamole-auth-jdbc-${GUAC_VER}.tar.gz \
252251
&& cp -R ${GUACAMOLE_HOME}/guacamole-auth-jdbc-${GUAC_VER}/postgresql/guacamole-auth-jdbc-postgresql-${GUAC_VER}.jar ${GUACAMOLE_HOME}/extensions/ \

0 commit comments

Comments
 (0)