• Stars
    star
    170
  • Rank 223,357 (Top 5 %)
  • Language
    Shell
  • License
    MIT License
  • Created almost 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Dockerized zoom with voice and video call support

This project is fully inspired of sameersbn Skype's containerization.

mdouchement/zoom-us

Introduction

Dockerfile to create a Docker container image with Zoom for Linux with support for audio/video calls.

The image uses X11 and Pulseaudio unix domain sockets on the host to enable audio/video support in Zoom. These components are available out of the box on pretty much any modern linux distribution.

Contributing

If you find this image useful here's how you can help:

  • Send a pull request with your awesome features and bug fixes
  • Help users resolve their issues.

Getting started

Installation

Automated builds of the image are available on Dockerhub and is the recommended method of installation.

docker pull mdouchement/zoom-us:latest

Alternatively you can build the image yourself.

docker build -t mdouchement/zoom-us github.com/mdouchement/docker-zoom-us

With the image locally available, install the wrapper scripts by running the following as root:

docker run -it --rm \
  --volume /usr/local/bin:/target \
  mdouchement/zoom-us:latest install

This will install a wrapper script to launch zoom.

Note

If Zoom is installed on the the host then the host binary is launched instead of starting a Docker container. To force the launch of Zoom in a container use the zoom-us-wrapper script. For example, zoom-us-wrapper zoom will launch Zoom inside a Docker container regardless of whether it is installed on the host or not.

Web Browser / SSO

Add the following option in ~/.config/zoomus.conf

embeddedBrowserForSSOLogin=false

Zoom will spawn Iceweasel (Firefox) included in this image and open SSO provider web page.

How it works

The wrapper scripts volume mount the X11 and pulseaudio sockets in the launcher container. The X11 socket allows for the user interface display on the host, while the pulseaudio socket allows for the audio output to be rendered on the host.

When the image is launched the following directories are mounted as volumes

  • ${HOME}/.zoom
  • ${HOME}/.config
  • XDG_DOWNLOAD_DIR or if it is missing ${HOME}/Downloads
  • XDG_DOCUMENTS_DIR or if it is missing ${HOME}/Documents

This makes sure that your profile details are stored on the host and files received via Zoom are available on your host in the appropriate download directory.

Don't want to expose host's folders to Zoom?

Add ZOOM_HOME environment variable to namespace all Zoom folders:

export ZOOM_HOME=${HOME}/zoomus

Maintenance

Upgrading

To upgrade to newer releases:

  1. Download the updated Docker image:
docker pull mdouchement/zoom-us:latest
  1. Run install to make sure the host scripts are updated.
docker run -it --rm \
  --volume /usr/local/bin:/target \
  mdouchement/zoom-us:latest install

Uninstallation

docker run -it --rm \
  --volume /usr/local/bin:/target \
  mdouchement/zoom-us:latest uninstall

Shell Access

For debugging and maintenance purposes you may want access the containers shell. If you are using Docker version 1.3.0 or higher you can access a running containers shell by starting bash using docker exec:

docker exec -it zoomus bash

Troubleshooting

  • Zoom basic logs:
    • docker logs zoomus
    • ls -l ${ZOOM_HOME:=$HOME}/.zoom/logs where you can find application logs.
  • Screen sharing:
    • Try xhost +SI:localuser:"$USER" #20
  • Transparent login form:
    • A possible workaround is to right click on the Zoom icon from the taskbar and select "About". The about popup could fix the login form render.
    • If Unrecognized OpenGL version error is in the logs, it could be an issue with Nvidia drivers #1

More Repositories

1

standardfile

Yet Another Standardfile (standardnotes server) Implementation written in Golang
Go
80
star
2

hdr

HDR is a library that handles RAW image format written with Golang
Go
36
star
3

docker-hdfs

Docker image for single HDFS node
Dockerfile
28
star
4

dng

A basic DNG codec reader for Golang
Go
16
star
5

seikan

Seikan is client/server application that enables to create bidirectional TCP tunnels leveraging Noise Protocol.
Go
11
star
6

standardnotes

Dockerization of Standard File server. Used for running your own Standard Notes server
Dockerfile
11
star
7

docker-readymedia-transcode

Docker image for ReadyMedia (formerly known as MiniDLNA), a DLNA/UPnP-AV Media server with transcode support.
Shell
11
star
8

smsc3

An SMSC emulator able to send and receive SMS.
Go
7
star
9

docker-pgadmin3

5
star
10

zoia

Patch parser for the Empress Effects ZOIA.
Go
5
star
11

hdr_examples

LDR gallery generated using mdouchement/hdr Golang's package
Go
4
star
12

Alembic-F2b

Alembic F2b tube preamp schematic
4
star
13

workerpool

Asynchronous in-memory workers for Go based projects
Go
4
star
14

Ampeg-Heritage-B-15

Custom Ampeg Heritage B-15 schematic
Go
3
star
15

bilateral

A Fast Bilateral image filter for Golang
Go
3
star
16

composer

An awesome utility to manage all your processes in development environment
Go
2
star
17

swift-server

Mock server for Openstack Swift object storage
Ruby
2
star
18

iosupport

It provides some io supports for Golang
Go
2
star
19

fichenn

Fichenn is a standalone binary - written in Golang - for uploading and downloading secured files.
Go
2
star
20

tiff

A Golang TIFF codec for HDRi formats
Go
2
star
21

machinery-pg

A prototype of using Postgres as broker and backend for Machinery
Go
2
star
22

p2cli

p2cli is a portable Jinja2 (Ansible) template engine
Go
2
star
23

middlewarex

Bunch of middlewares for Echo framework
Go
2
star
24

copier

Copier is a tool for copying files from damaged disks at low speed.
Go
2
star
25

wctop

wctop is a simple web-ui for monitoring local running Docker containers
Go
2
star
26

xredis

Handy wrapper around github.com/go-redis/redis package.
Go
1
star
27

hsync

HSync is a Proof of Concept of a shared lock across web services for very simple usecases
Go
1
star
28

breizhtrip

Ruby
1
star
29

geoblock-proxy

Simple Geoblocking Proxy (TCP/UDP)
Go
1
star
30

logger

A simple prefixer logger that can wrap several backends.
Go
1
star
31

elk

Docker Compose ELK v2 for Nginx (1.9) and pfSense (2.2.x)
1
star
32

vdf

Valve Data Format parser and generator written in Golang
Go
1
star
33

openstackswift

Mock server for Openstack Swift object storage
Go
1
star
34

docker-lximediaserver

Docker image for LXiMedia, a DLNA compatible, fully transcoding, media server.
Shell
1
star
35

acme

Let's Encrypt client used for manual certificate acquisition
Go
1
star
36

nregexp

Named captures for Golang's regexp
Go
1
star
37

captive

Basic webserver used to fake Network Health Check (captive.apple.com - detectportal.firefox.com - etc.)
Go
1
star
38

hr

Simple binary aimed to humanize the sizes
Go
1
star
39

koanflua

Koanf Lua allows to write dynamic configuration files for koanf configuration manager.
Go
1
star
40

koanfgo

Koanf Go allows to write dynamic configuration files for koanf configuration manager.
Go
1
star
41

blockio

BlockIO is a simple package to write and read a file as binary blocks. It's the same idea as putting several JSON objects line per line in a plaintext file.
Go
1
star
42

breizhtrip-go

Go
1
star
43

gexplorer

File dialog for several OSes.
Go
1
star
44

shigoto

A nextgen crontab.
Go
1
star