olberger / docker-teams-linux

Dockerized Teams with voice and video call support

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This project is fully inspired of Marc Douchement's docker-zoom-us, which in turn was inspired by sameersbn Skype's containerization.

olberger/docker-teams-linux

Introduction

Dockerfile to create a Docker container image with Teams 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 Teams. 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 olberger/docker-teams-linux:latest

Alternatively you can build the image yourself.

docker build -t olberger/docker-teams-linux github.com/olberger/docker-teams-linux

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

docker run -it --rm \
  --volume /usr/local/bin:/target \
  olberger/docker-teams-linux:latest install

This will install a wrapper script to launch teams.

Starting Teams

Launch the teams-wrapper script to enter a shell inside the Docker container

teams-wrapper bash

Then the prompt should be displayed like:

Adding user `teams' to group `sudo' ...
Adding user teams to group sudo
Done.
bash
teams@0b2fefbf45d2:~$

then type teams.

Note

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

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}/.config/teams
  • ${HOME}/.config/Microsoft

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

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

Add TEAMS_HOME environment variable to namespace all Teams folders:

export TEAMS_HOME=${HOME}/teams

Maintenance

Upgrading

To upgrade to newer releases:

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

Uninstallation

docker run -it --rm \
  --volume /usr/local/bin:/target \
  olberger/docker-teams-linux:latest uninstall

Updating the image rebuild locally

This should ensure to download again the client (and update any other bits in the image

docker build --no-cache -t olberger/docker-teams-linux github.com/olberger/docker-teams-linux

About

Dockerized Teams with voice and video call support

License:MIT License


Languages

Language:Shell 78.1%Language:Dockerfile 21.9%