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 # Use Ubuntu as base for the build
ARG CENTOS_VERSION=centos7 ARG UBUNTU_VERSION=xenial
FROM centos:${CENTOS_VERSION} AS builder FROM ubuntu:${UBUNTU_VERSION} AS builder
# Base directory for installed build artifacts. # Base directory for installed build artifacts.
# Due to limitations of the Docker image build process, this value is # 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=" \ ARG BUILD_DEPENDENCIES=" \
autoconf \ autoconf \
automake \ automake \
cairo-devel \
freerdp-devel \
gcc \ gcc \
libjpeg-turbo-devel \ libcairo2-dev \
libssh2-devel \ libfreerdp-dev \
libjpeg-turbo8-dev \
libossp-uuid-dev \
libpango1.0-dev \
libpulse-dev \
libssh2-1-dev \
libssl-dev \
libtelnet-dev \
libtool \ libtool \
libtelnet-devel \ libvncserver-dev \
libvorbis-devel \ libwebp-dev \
libvncserver-devel \ make"
libwebp-devel \
make \
pango-devel \
pulseaudio-libs-devel \
uuid-devel"
# Build time environment # Build time environment
ENV LC_ALL=en_US.UTF-8 ENV LC_ALL=en_US.UTF-8
# Bring build environment up to date and install build dependencies # Bring build environment up to date and install build dependencies
RUN yum -y update && \ RUN apt-get update && \
yum -y install epel-release && \ apt-get install -y $BUILD_DEPENDENCIES && \
yum -y install $BUILD_DEPENDENCIES && \ rm -rf /var/lib/apt/lists/*
yum clean all
# Add configuration scripts # Add configuration scripts
COPY src/guacd-docker/bin /opt/guacd/bin/ COPY src/guacd-docker/bin /opt/guacd/bin/
@ -70,8 +69,8 @@ COPY . "$BUILD_DIR"
# Build guacamole-server from local source # Build guacamole-server from local source
RUN /opt/guacd/bin/build-guacd.sh "$BUILD_DIR" "$PREFIX_DIR" RUN /opt/guacd/bin/build-guacd.sh "$BUILD_DIR" "$PREFIX_DIR"
# Use same CentOS as the base for the runtime image # Use same Ubuntu as the base for the runtime image
FROM centos:${CENTOS_VERSION} FROM ubuntu:${UBUNTU_VERSION}
# Base directory for installed build artifacts. # Base directory for installed build artifacts.
# Due to limitations of the Docker image build process, this value is # 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 ENV GUACD_LOG_LEVEL=info
ARG RUNTIME_DEPENDENCIES=" \ ARG RUNTIME_DEPENDENCIES=" \
cairo \
dejavu-sans-mono-fonts \
freerdp \
freerdp-plugins \
ghostscript \ ghostscript \
libjpeg-turbo \ libcairo2 \
libssh2 \ fonts-liberation \
liberation-mono-fonts \ fonts-dejavu \
libtelnet \ libfreerdp-cache1.1 \
libvorbis \ libfreerdp-client1.1 \
libvncserver \ libfreerdp-codec1.1 \
libwebp \ libfreerdp-common1.1.0 \
pango \ libfreerdp-core1.1 \
pulseaudio-libs \ libfreerdp-crypto1.1 \
terminus-fonts \ libfreerdp-gdi1.1 \
uuid" 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 # Bring runtime environment up to date and install runtime dependencies
RUN yum -y update && \ RUN apt-get update && \
yum -y install epel-release && \ apt-get install -y $RUNTIME_DEPENDENCIES && \
yum -y install $RUNTIME_DEPENDENCIES && \ rm -rf /var/lib/apt/lists/*
yum clean all && \
rm -rf /var/cache/yum
# Copy build artifacts into this stage # Copy build artifacts into this stage
COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR} COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR}
# Link FreeRDP plugins into proper path # Link FreeRDP plugins into proper path
RUN FREERDP_DIR=$(dirname \ 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" && \ FREERDP_PLUGIN_DIR="${FREERDP_DIR}/freerdp" && \
mkdir -p "$FREERDP_PLUGIN_DIR" && \ mkdir -p "$FREERDP_PLUGIN_DIR" && \
ln -s "$PREFIX_DIR"/lib/freerdp/*.so "$FREERDP_PLUGIN_DIR" ln -s "$PREFIX_DIR"/lib/freerdp/*.so "$FREERDP_PLUGIN_DIR"