GUACAMOLE-407: Update Docker image to use more recent packages by switching to Ubuntu.

This commit is contained in:
Michael Jumper 2018-02-08 12:40:15 -08:00
parent 3516704b82
commit 72638aa03e

View File

@ -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"