GUACAMOLE-407: Update Docker image to use more recent packages by switching to Ubuntu.
This commit is contained in:
parent
3516704b82
commit
72638aa03e
121
Dockerfile
121
Dockerfile
@ -22,9 +22,9 @@
|
||||
#
|
||||
|
||||
|
||||
# Use CentOS as base for the build
|
||||
ARG CENTOS_VERSION=centos7
|
||||
FROM centos:${CENTOS_VERSION} AS builder
|
||||
# Use Ubuntu as base for the build
|
||||
ARG UBUNTU_VERSION=xenial
|
||||
FROM ubuntu:${UBUNTU_VERSION} AS builder
|
||||
|
||||
# Base directory for installed build artifacts.
|
||||
# Due to limitations of the Docker image build process, this value is
|
||||
@ -37,29 +37,28 @@ ARG BUILD_DIR=/tmp/guacd-docker-BUILD
|
||||
ARG BUILD_DEPENDENCIES=" \
|
||||
autoconf \
|
||||
automake \
|
||||
cairo-devel \
|
||||
freerdp-devel \
|
||||
gcc \
|
||||
libjpeg-turbo-devel \
|
||||
libssh2-devel \
|
||||
libcairo2-dev \
|
||||
libfreerdp-dev \
|
||||
libjpeg-turbo8-dev \
|
||||
libossp-uuid-dev \
|
||||
libpango1.0-dev \
|
||||
libpulse-dev \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtelnet-dev \
|
||||
libtool \
|
||||
libtelnet-devel \
|
||||
libvorbis-devel \
|
||||
libvncserver-devel \
|
||||
libwebp-devel \
|
||||
make \
|
||||
pango-devel \
|
||||
pulseaudio-libs-devel \
|
||||
uuid-devel"
|
||||
libvncserver-dev \
|
||||
libwebp-dev \
|
||||
make"
|
||||
|
||||
# Build time environment
|
||||
ENV LC_ALL=en_US.UTF-8
|
||||
|
||||
# Bring build environment up to date and install build dependencies
|
||||
RUN yum -y update && \
|
||||
yum -y install epel-release && \
|
||||
yum -y install $BUILD_DEPENDENCIES && \
|
||||
yum clean all
|
||||
RUN apt-get update && \
|
||||
apt-get install -y $BUILD_DEPENDENCIES && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Add configuration scripts
|
||||
COPY src/guacd-docker/bin /opt/guacd/bin/
|
||||
@ -70,8 +69,8 @@ COPY . "$BUILD_DIR"
|
||||
# Build guacamole-server from local source
|
||||
RUN /opt/guacd/bin/build-guacd.sh "$BUILD_DIR" "$PREFIX_DIR"
|
||||
|
||||
# Use same CentOS as the base for the runtime image
|
||||
FROM centos:${CENTOS_VERSION}
|
||||
# Use same Ubuntu as the base for the runtime image
|
||||
FROM ubuntu:${UBUNTU_VERSION}
|
||||
|
||||
# Base directory for installed build artifacts.
|
||||
# Due to limitations of the Docker image build process, this value is
|
||||
@ -85,36 +84,74 @@ ENV LC_ALL=en_US.UTF-8
|
||||
ENV GUACD_LOG_LEVEL=info
|
||||
|
||||
ARG RUNTIME_DEPENDENCIES=" \
|
||||
cairo \
|
||||
dejavu-sans-mono-fonts \
|
||||
freerdp \
|
||||
freerdp-plugins \
|
||||
ghostscript \
|
||||
libjpeg-turbo \
|
||||
libssh2 \
|
||||
liberation-mono-fonts \
|
||||
libtelnet \
|
||||
libvorbis \
|
||||
libvncserver \
|
||||
libwebp \
|
||||
pango \
|
||||
pulseaudio-libs \
|
||||
terminus-fonts \
|
||||
uuid"
|
||||
libcairo2 \
|
||||
fonts-liberation \
|
||||
fonts-dejavu \
|
||||
libfreerdp-cache1.1 \
|
||||
libfreerdp-client1.1 \
|
||||
libfreerdp-codec1.1 \
|
||||
libfreerdp-common1.1.0 \
|
||||
libfreerdp-core1.1 \
|
||||
libfreerdp-crypto1.1 \
|
||||
libfreerdp-gdi1.1 \
|
||||
libfreerdp-locale1.1 \
|
||||
libfreerdp-plugins-standard \
|
||||
libfreerdp-primitives1.1 \
|
||||
libfreerdp-rail1.1 \
|
||||
libfreerdp-utils1.1 \
|
||||
libjpeg-turbo8 \
|
||||
libossp-uuid16 \
|
||||
libpango1.0 \
|
||||
libpulse0 \
|
||||
libssh2-1 \
|
||||
libssl1.0.0 \
|
||||
libtelnet2 \
|
||||
libvncclient1 \
|
||||
libwebp5 \
|
||||
libwinpr-asn1-0.1 \
|
||||
libwinpr-bcrypt0.1 \
|
||||
libwinpr-credentials0.1 \
|
||||
libwinpr-credui0.1 \
|
||||
libwinpr-crt0.1 \
|
||||
libwinpr-crypto0.1 \
|
||||
libwinpr-dsparse0.1 \
|
||||
libwinpr-environment0.1 \
|
||||
libwinpr-error0.1 \
|
||||
libwinpr-file0.1 \
|
||||
libwinpr-handle0.1 \
|
||||
libwinpr-heap0.1 \
|
||||
libwinpr-input0.1 \
|
||||
libwinpr-interlocked0.1 \
|
||||
libwinpr-io0.1 \
|
||||
libwinpr-library0.1 \
|
||||
libwinpr-path0.1 \
|
||||
libwinpr-pipe0.1 \
|
||||
libwinpr-pool0.1 \
|
||||
libwinpr-registry0.1 \
|
||||
libwinpr-rpc0.1 \
|
||||
libwinpr-sspi0.1 \
|
||||
libwinpr-sspicli0.1 \
|
||||
libwinpr-synch0.1 \
|
||||
libwinpr-sysinfo0.1 \
|
||||
libwinpr-thread0.1 \
|
||||
libwinpr-timezone0.1 \
|
||||
libwinpr-utils0.1 \
|
||||
libwinpr-winhttp0.1 \
|
||||
libwinpr-winsock0.1 \
|
||||
xfonts-terminus"
|
||||
|
||||
# Bring runtime environment up to date and install runtime dependencies
|
||||
RUN yum -y update && \
|
||||
yum -y install epel-release && \
|
||||
yum -y install $RUNTIME_DEPENDENCIES && \
|
||||
yum clean all && \
|
||||
rm -rf /var/cache/yum
|
||||
RUN apt-get update && \
|
||||
apt-get install -y $RUNTIME_DEPENDENCIES && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Copy build artifacts into this stage
|
||||
COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR}
|
||||
|
||||
# Link FreeRDP plugins into proper path
|
||||
RUN FREERDP_DIR=$(dirname \
|
||||
$(rpm -ql freerdp-libs | grep 'libfreerdp.*\.so' | head -n1)) && \
|
||||
$(dpkg-query -L libfreerdp | grep 'libfreerdp.*\.so' | head -n1)) && \
|
||||
FREERDP_PLUGIN_DIR="${FREERDP_DIR}/freerdp" && \
|
||||
mkdir -p "$FREERDP_PLUGIN_DIR" && \
|
||||
ln -s "$PREFIX_DIR"/lib/freerdp/*.so "$FREERDP_PLUGIN_DIR"
|
||||
|
Loading…
Reference in New Issue
Block a user