From 72638aa03ecbf9d1b141ec271f2c7858488254fe Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Thu, 8 Feb 2018 12:40:15 -0800 Subject: [PATCH] GUACAMOLE-407: Update Docker image to use more recent packages by switching to Ubuntu. --- Dockerfile | 121 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 79 insertions(+), 42 deletions(-) diff --git a/Dockerfile b/Dockerfile index 21b98d8b..3e55dc1d 100644 --- a/Dockerfile +++ b/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"