1

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

trgbishi
  • 55
  • 1
  • 2
  • 10

2 Answers2

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.

mchawre
  • 10,744
  • 4
  • 35
  • 57
-1

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/*