skip to Main Content

I installed guacamole and guacadmin with docker, so I also wanted to install guacenc with docker, but I didn’t find the information.

In fact, I have not found any other way to install guacenc.
If anyone knows, I hope I can get the answer.

Thank you very much

2

Answers


  1. If guacamole and guacadmin can be installed on linux/windows/Mac OS then it can be run inside docker.

    Here is the official docker image of guacamole on dockerhub, which you can try out.

    Also check this out.

    Update:

    To install guacenc in centos docker image you need to install necessary packages as mentioned here.

    Quoting the statement from this link.

    The guacenc utility, provided by guacamole-server to translate screen
    recordings into video, depends on FFmpeg, and will only be built if at
    least the libavcodec, libavutil, and libswscale libraries provided by
    FFmpeg are installed.


    The libavcodec, libavutil, and libswscale libraries provided by FFmpeg
    are used by guacenc to encode video streams when translating
    recordings of Guacamole sessions. Without FFmpeg, the guacenc utility
    will simply not be built.

    You need to install these packages using yum install so that guacenc utility can be build and installed.

    Hope this helps.

    Login or Signup to reply.
  2. This dockerfile is only reference. thanks

    # This is a Dockerfile to build the docker image including guacenc service and ffmpeg utility.
    # To reduce docker image size, utilize multi-stage build method and copy shared library file required while executing guacenc. 
    # Copying shared library method is inspired by this thread "https://gist.github.com/bcardiff/85ae47e66ff0df35a78697508fcb49af"
    
    # mutlti-stage builds ref#
    # https://docs.docker.com/develop/develop-images/multistage-build/
    # https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
    
    # This Dockerfile is built off the https://github.com/apache/guacamole-server Dockerfile.
    # In this repo, only Dockerfile provided. If you're about to build your own docker image, download whole project file from the link above.
    
    
    # Encode existing session recordings to .m4v:
    # $ docker exec -it guac_encoder guacenc -f /recordings/file-name-to-encode
    
    # Convert .m4v to .mp4:
    # $ docker exec -it guac_encoder ffmpeg -i /recordings/file-name-to-convert.m4v /records/file-name.mp4
    
    
    
    # Use Debian as base for the build
    ARG DEBIAN_VERSION=stable
    FROM debian:${DEBIAN_VERSION} AS builder
    
    
    ADD . /src
    WORKDIR /src
    
    # Base directory for installed build artifacts.
    # 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=/usr/local/guacamole
    
    # Build arguments
    ARG BUILD_DIR=/tmp/guacd-docker-BUILD
    ARG BUILD_DEPENDENCIES="              
            autoconf                      
            automake                      
            gcc                           
            libcairo2-dev                 
            libjpeg62-turbo-dev           
            libossp-uuid-dev              
            libpango1.0-dev               
            libtool                       
            libwebp-dev                   
            libavcodec-dev                
            libavutil-dev                 
            libswscale-dev                
            make"
    
    # Bring build environment up to date and install build dependencies
    RUN apt-get update                         && 
        apt-get install -y $BUILD_DEPENDENCIES && 
        rm -rf /var/lib/apt/lists/*
    
    # Add configuration scripts
    COPY src/guacd-docker/bin "${PREFIX_DIR}/bin/"
    
    # Copy source to container for sake of build
    COPY . "$BUILD_DIR"
    
    # Build guacamole-server from local source
    RUN ${PREFIX_DIR}/bin/build-guacd.sh "$BUILD_DIR" "$PREFIX_DIR"
    
    # # Record the packages of all runtime library dependencies
    # RUN ${PREFIX_DIR}/bin/list-dependencies.sh    
    #         ${PREFIX_DIR}/sbin/guacd              
    #         ${PREFIX_DIR}/lib/libguac-client-*.so 
    #         > ${PREFIX_DIR}/DEPENDENCIES
    
    # Copy shared library file for guacenc to src folder located root directory
    RUN ldd /usr/local/guacamole/bin/guacenc | tr -s '[:blank:]' 'n' | grep '^/' | 
        xargs -I % sh -c 'mkdir -p $(dirname deps%); cp % deps%;'
    
    #####################################################################
    # Use same Debian as the base for the runtime image
    FROM jrottenberg/ffmpeg:4.1-alpine
    
    # Override existing ffmpeg ENTRYPOINT
    ENTRYPOINT []
    
    # Base directory for installed build artifacts.
    # Due to limitations of the Docker image build process, this value is
    # duplicated in an ARG in the first stage of the build. See also the
    # CMD directive at the end of this build stage.
    ARG PREFIX_DIR=/usr/local/guacamole
    
    
    # Runtime environment
    ENV LC_ALL=C.UTF-8
    ENV LD_LIBRARY_PATH ${PREFIX_DIR}/lib:$LD_LIBRARY_PATH
    ENV PATH ${PREFIX_DIR}/bin:$PATH
    
    # Copy guacenc and lib
    COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR}
    # Copy shared library required while executing guacenc
    COPY --from=builder /src/deps /
    
    # # Bring runtime environment up to date and install runtime dependencies
    # RUN apt-get update                                          && 
    #     apt-get install -y $(cat "${PREFIX_DIR}"/DEPENDENCIES)  && 
    #     rm -rf /var/lib/apt/lists/*
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search