AxelDolislager commented on PR #517: URL: https://github.com/apache/guacamole-server/pull/517#issuecomment-2758575916
After compiling the code with freerdp3, making a docker image out of it and testing it out I am receiving the following error: **guacd[94]: WARNING: Support for protocol "rdp" is not installed.**  I am trying to get this to work because we need to disable NTLM in out active directory. I was also receiving various errors with the current Dockerfile. This is my current working Dockerfile: ` # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # # # Dockerfile for guacamole-server # # The Alpine Linux image that should be used as the basis for the guacd image # NOTE: Using 3.18 because the required openssl1.1-compat-dev package was # removed in more recent versions. ARG ALPINE_BASE_IMAGE=3.18 FROM alpine:${ALPINE_BASE_IMAGE} AS builder # FreeRDP version (default to version 3) ARG FREERDP_VERSION=3 # Install build dependencies RUN apk add --no-cache \ autoconf \ automake \ build-base \ cairo-dev \ cjson-dev \ cmake \ cunit-dev \ git \ grep \ krb5-dev \ libjpeg-turbo-dev \ libpng-dev \ libtool \ libwebp-dev \ make \ openssl1.1-compat-dev \ pango-dev \ pulseaudio-dev \ sdl2-dev \ sdl2_ttf-dev \ util-linux-dev \ webkit2gtk-dev \ nasm \ cups-dev \ fuse3-dev \ libusb-dev \ ffmpeg-dev # Copy source to container for sake of build ARG BUILD_DIR=/tmp/guacamole-server COPY . ${BUILD_DIR} # # Base directory for installed build artifacts. # # NOTE: Due to limitations of the Docker image build process, this value is # duplicated in an ARG in the second stage of the build. # ARG PREFIX_DIR=/opt/guacamole # # Automatically select the latest versions of each core protocol support # library (these can be overridden at build time if a specific version is # needed) # ARG WITH_FREERDP="${FREERDP_VERSION}(\.\d+)+" ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+' ARG WITH_LIBTELNET='\d+(\.\d+)+' ARG WITH_LIBVNCCLIENT='LibVNCServer-\d+(\.\d+)+' ARG WITH_LIBWEBSOCKETS='v\d+(\.\d+)+' # # Default build options for each core protocol support library, as well as # guacamole-server itself (these can be overridden at build time if different # options are needed) # ARG FREERDP_OPTS="\ -DBUILTIN_CHANNELS=OFF \ -DCHANNEL_URBDRC=OFF \ -DWITH_ALSA=OFF \ -DWITH_CAIRO=ON \ -DWITH_CHANNELS=ON \ -DWITH_CLIENT=ON \ -DWITH_CUPS=OFF \ -DWITH_DIRECTFB=OFF \ -DWITH_FFMPEG=OFF \ -DWITH_FUSE=OFF \ -DWITH_GSM=OFF \ -DWITH_GSSAPI=OFF \ -DWITH_IPP=OFF \ -DWITH_JPEG=ON \ -DWITH_KRB5=ON \ -DWITH_LIBSYSTEMD=OFF \ -DWITH_MANPAGES=OFF \ -DWITH_OPENH264=OFF \ -DWITH_OPENSSL=ON \ -DWITH_OSS=OFF \ -DWITH_PCSC=OFF \ -DWITH_PKCS11=OFF \ -DWITH_PULSE=OFF \ -DWITH_SERVER=OFF \ -DWITH_SERVER_INTERFACE=OFF \ -DWITH_SHADOW_MAC=OFF \ -DWITH_SHADOW_X11=OFF \ -DWITH_SSE2=ON \ -DWITH_SWSCALE=OFF \ -DWITH_WAYLAND=OFF \ -DWITH_X11=OFF \ -DWITH_X264=OFF \ -DWITH_XCURSOR=ON \ -DWITH_XEXT=ON \ -DWITH_XI=OFF \ -DWITH_XINERAMA=OFF \ -DWITH_XKBFILE=ON \ -DWITH_XRENDER=OFF \ -DWITH_XTEST=OFF \ -DWITH_XV=OFF \ -DWITH_ZLIB=ON" ARG GUACAMOLE_SERVER_OPTS="\ --disable-guaclog" ARG LIBSSH2_OPTS="\ -DBUILD_EXAMPLES=OFF \ -DBUILD_SHARED_LIBS=ON" ARG LIBTELNET_OPTS="\ --disable-static \ --disable-util" ARG LIBVNCCLIENT_OPTS="" ARG LIBWEBSOCKETS_OPTS="\ -DDISABLE_WERROR=ON \ -DLWS_WITHOUT_SERVER=ON \ -DLWS_WITHOUT_TESTAPPS=ON \ -DLWS_WITHOUT_TEST_CLIENT=ON \ -DLWS_WITHOUT_TEST_PING=ON \ -DLWS_WITHOUT_TEST_SERVER=ON \ -DLWS_WITHOUT_TEST_SERVER_EXTPOLL=ON \ -DLWS_WITH_STATIC=OFF" # Build guacamole-server and its core protocol library dependencies **# Build FreeRDP RUN git clone https://github.com/FreeRDP/FreeRDP.git /tmp/FreeRDP WORKDIR /tmp/FreeRDP RUN git checkout 3.8.0 RUN mkdir /tmp/FreeRDP/build WORKDIR /tmp/FreeRDP/build RUN cmake .. RUN cmake --build . RUN cmake --install .** **RUN ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh** #I've commented out the FreeRDP installation because of errors. # Determine location of the FREERDP library based on the version. ARG FREERDP_LIB_PATH=${PREFIX_DIR}/lib/freerdp${FREERDP_VERSION} # Record the packages of all runtime library dependencies RUN ${BUILD_DIR}/src/guacd-docker/bin/list-dependencies.sh \ ${PREFIX_DIR}/sbin/guacd \ ${PREFIX_DIR}/lib/libguac-client-*.so \ ${FREERDP_LIB_PATH}/*guac*.so \ > ${PREFIX_DIR}/DEPENDENCIES # Use same Alpine version as the base for the runtime image FROM alpine:${ALPINE_BASE_IMAGE} # # Base directory for installed build artifacts. See also the # CMD directive at the end of this build stage. # # NOTE: Due to limitations of the Docker image build process, this value is # duplicated in an ARG in the first stage of the build. # ARG PREFIX_DIR=/opt/guacamole # 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 COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR} # Bring runtime environment up to date and install runtime dependencies RUN apk add --no-cache \ ca-certificates \ font-noto-cjk \ ghostscript \ netcat-openbsd \ shadow \ terminus-font \ ttf-dejavu \ ttf-liberation \ util-linux-login && \ xargs apk add --no-cache < ${PREFIX_DIR}/DEPENDENCIES # Checks the operating status every 5 minutes with a timeout of 5 seconds HEALTHCHECK --interval=5m --timeout=5s CMD nc -z 127.0.0.1 4822 || exit 1 # Create a new user guacd ARG UID=1000 ARG GID=1000 RUN groupadd --gid $GID guacd RUN useradd --system --create-home --shell /sbin/nologin --uid $UID --gid $GID guacd # Run with user guacd USER guacd # Expose the default listener port EXPOSE 4822 # Start guacd, listening on port 0.0.0.0:4822 # # Note the path here MUST correspond to the value specified in the # PREFIX_DIR build argument. # CMD /opt/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f ` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
