UNCLASSIFIED

Dockerfile 2.42 KB
Newer Older
Vickie Shen's avatar
Vickie Shen committed
1 2
ARG BASE_REGISTRY=registry1.dsop.io
ARG BASE_IMAGE=ironbank/redhat/ubi/ubi8
sean.melissari's avatar
sean.melissari committed
3
ARG BASE_TAG=8.4
Vickie Shen's avatar
Vickie Shen committed
4

Vickie Shen's avatar
Vickie Shen committed
5
FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} as builder
Vickie Shen's avatar
Vickie Shen committed
6

Vickie Shen's avatar
Vickie Shen committed
7 8
USER 0

Vickie Shen's avatar
Vickie Shen committed
9 10
ARG PREFIX_DIR=/usr/local/guacamole
ARG BUILD_DIR=/tmp/guacd-docker-BUILD
Vickie Shen's avatar
Vickie Shen committed
11
ARG PACKAGES="nc autoconf automake make wget gcc dnf-plugins-core libtool libwebp-devel openssl-devel libuuid-devel libpng-devel libjpeg-turbo-devel libvorbis"
Vickie Shen's avatar
Vickie Shen committed
12

Joshua Eason's avatar
Joshua Eason committed
13
COPY guacamole-server-1.3.0.tar.gz /
Vickie Shen's avatar
Vickie Shen committed
14 15 16
COPY *.rpm /opt/pkgs/
COPY signatures/* /opt/signatures/
COPY scripts/ ${PREFIX_DIR}/bin/
Vickie Shen's avatar
Vickie Shen committed
17 18

RUN dnf upgrade -y && \
Vickie Shen's avatar
Vickie Shen committed
19
    rpm --import /opt/signatures/* && \
Vickie Shen's avatar
Vickie Shen committed
20 21
    dnf install -y --nodocs $PACKAGES && \
    dnf localinstall -y /opt/pkgs/*.rpm && \
Joshua Eason's avatar
Joshua Eason committed
22 23
    tar -xzvf guacamole-server-1.3.0.tar.gz && \
    cp -r guacamole-server-1.3.0/ "$BUILD_DIR"
Vickie Shen's avatar
Vickie Shen committed
24 25

# Build guacamole-server from local source
Vickie Shen's avatar
Vickie Shen committed
26 27 28 29 30 31
RUN cd "$BUILD_DIR" && \
    autoreconf -fi && \
    ./configure --prefix="$PREFIX_DIR" --disable-guaclog --with-freerdp-plugin-dir="$PREFIX_DIR/lib/freerdp2" && \
    make && \
    make install && \
    ldconfig
Vickie Shen's avatar
Vickie Shen committed
32 33 34

FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} as base

Joshua Eason's avatar
Joshua Eason committed
35 36 37
# Arguments must be respecified due to being out of scope
ARG PREFIX_DIR=/usr/local/guacamole

Vickie Shen's avatar
Vickie Shen committed
38 39 40 41 42 43
# Runtime environment
ENV LC_ALL=C.UTF-8
ENV LD_LIBRARY_PATH=${PREFIX_DIR}/lib
ENV GUACD_LOG_LEVEL=info

# Copy build artifacts into this stage
Vickie Shen's avatar
Vickie Shen committed
44
COPY --from=builder ${PREFIX_DIR}/ ${PREFIX_DIR}/
Vickie Shen's avatar
Vickie Shen committed
45
COPY --from=builder /opt/signatures/ /opt/signatures/
Vickie Shen's avatar
testing  
Vickie Shen committed
46 47 48 49 50
COPY freerdp-libs.rpm lame-libs.rpm libev.rpm libssh2.rpm libvncserver.rpm libwebsockets.rpm libwinpr.rpm \
     libxkbfile.rpm lzo-minilzo.rpm ghostscript-tools-fonts.rpm liberation-fonts-common.rpm terminus-fonts.rpm /opt/pkgs/

RUN dnf update -y && \
    rpm --import /opt/signatures/* && \
Jacob Rohlman's avatar
Jacob Rohlman committed
51
    dnf install -y --nodocs nmap dejavu-sans-fonts libwebp cairo uuid pango && \
Vickie Shen's avatar
testing  
Vickie Shen committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
    dnf localinstall -y /opt/pkgs/*.rpm && \
    rm -rf /opt/pkgs && \
    rm -rf /opt/signatures && \
    rm -rf /var/lib/apt/lists/* && \
    dnf clean all && \
    rm -rf /var/cache/dnf

# Link FreeRDP plugins into proper path
RUN chmod +x ${PREFIX_DIR}/bin/link-freerdp-plugins.sh && \
    ${PREFIX_DIR}/bin/link-freerdp-plugins.sh ${PREFIX_DIR}/lib/freerdp2/libguac*.so

RUN groupadd --gid 1000 guacd && \
    useradd --system --create-home --shell /usr/sbin/nologin --uid 1000 --gid 1000 guacd

USER guacd

EXPOSE 4822

HEALTHCHECK --interval=5m --timeout=5s CMD nc -z 127.0.0.1 4822 || exit 1

CMD /usr/local/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f