Merge pull request #14814 from antobinary/drop-obsolete-dockerfiles

chore: Drop obsolete Dockerfiles
This commit is contained in:
Anton Georgiev 2022-04-12 16:37:00 -04:00 committed by GitHub
commit 4a7c2aae16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 0 additions and 1802 deletions

View File

@ -1,24 +0,0 @@
FROM bbb-common-message AS builder
ARG COMMON_VERSION=0.0.1-SNAPSHOT
COPY . /source
RUN cd /source \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-message[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& sbt compile
RUN apt-get update \
&& apt-get -y install fakeroot
RUN cd /source \
&& sbt debian:packageBin
# FROM ubuntu:16.04
FROM openjdk:8-jre-slim-stretch
COPY --from=builder /source/target/*.deb /root/
RUN dpkg -i /root/*.deb
CMD ["/usr/share/bbb-apps-akka/bin/bbb-apps-akka"]

View File

@ -1,26 +0,0 @@
FROM bbb-fsesl-client AS builder
ARG COMMON_VERSION=0.0.1-SNAPSHOT
COPY . /source
RUN cd /source \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-message[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-fsesl-client[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& sbt compile
RUN apt-get update \
&& apt-get -y install fakeroot
RUN cd /source \
&& sbt debian:packageBin
FROM openjdk:8-jre-slim-stretch
COPY --from=builder /source/target/*.deb /root/
RUN dpkg -i /root/*.deb
COPY wait-for-it.sh /usr/local/bin/
CMD ["/usr/share/bbb-fsesl-akka/bin/bbb-fsesl-akka"]

View File

@ -1,13 +0,0 @@
FROM sbt:0.13.8
ARG COMMON_VERSION
COPY . /bbb-common-message
RUN cd /bbb-common-message \
&& sed -i "s|\(version := \)\".*|\1\"$COMMON_VERSION\"|g" build.sbt \
&& echo 'publishTo := Some(Resolver.file("file", new File(Path.userHome.absolutePath+"/.m2/repository")))' | tee -a build.sbt \
&& sbt compile \
&& sbt publish \
&& sbt publishLocal

View File

@ -1,13 +0,0 @@
FROM bbb-common-message
ARG COMMON_VERSION
COPY . /bbb-common-web
RUN cd /bbb-common-web \
&& sed -i "s|\(version := \)\".*|\1\"$COMMON_VERSION\"|g" build.sbt \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-message[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& echo 'publishTo := Some(Resolver.file("file", new File(Path.userHome.absolutePath+"/.m2/repository")))' | tee -a build.sbt \
&& sbt compile \
&& sbt publish \
&& sbt publishLocal

View File

@ -1,13 +0,0 @@
FROM bbb-common-message
ARG COMMON_VERSION
COPY . /bbb-fsesl-client
RUN cd /bbb-fsesl-client \
&& sed -i "s|\(version := \)\".*|\1\"$COMMON_VERSION\"|g" build.sbt \
&& find -name build.sbt -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-message[^\"]*\"[ ]*%[ ]*\)\"[^\"]*\"\(.*\)|\1\"$COMMON_VERSION\"\2|g" {} \; \
&& echo 'publishTo := Some(Resolver.file("file", new File(Path.userHome.absolutePath+"/.m2/repository")))' | tee -a build.sbt \
&& sbt compile \
&& sbt publish \
&& sbt publishLocal

View File

@ -1,38 +0,0 @@
FROM node:8
RUN set -x \
&& curl -sL https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh \
&& useradd -m -G users -s /bin/bash meteor
RUN apt-get update && apt-get -y install jq
COPY . /source
RUN cd /source \
&& mv docker-entrypoint.sh /usr/local/bin/ \
&& chown -R meteor:meteor . \
&& mkdir /app \
&& chown -R meteor:meteor /app
USER meteor
RUN cd /source \
&& meteor npm install \
&& meteor build --directory /app
ENV NODE_ENV production
RUN cd /app/bundle/programs/server \
&& npm install \
&& npm cache clear --force
WORKDIR /app/bundle
ENV MONGO_URL=mongodb://mongo:27017/html5client \
PORT=3000 \
ROOT_URL=http://localhost:3000 \
METEOR_SETTINGS_MODIFIER=.
EXPOSE 3000
CMD ["docker-entrypoint.sh"]

View File

@ -1,24 +0,0 @@
FROM node:8
COPY . /source
RUN set -x \
&& curl -sL https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh \
&& useradd -m -G users -s /bin/bash meteor \
&& chown -R meteor:meteor /source
USER meteor
RUN cd /source \
&& meteor npm install
WORKDIR /source
ENV MONGO_URL=mongodb://mongo:27017/html5client \
PORT=3000 \
ROOT_URL=http://localhost:3000
EXPOSE 3000
CMD ["npm", "start"]

View File

@ -1,64 +0,0 @@
FROM bbb-common-web AS builder
RUN mkdir -p /root/tools \
&& cd /root/tools \
&& wget https://services.gradle.org/distributions/gradle-2.12-bin.zip \
&& unzip gradle-2.12-bin.zip \
&& ln -s gradle-2.12 gradle
RUN mkdir -p /root/tools \
&& cd /root/tools \
&& wget https://github.com/grails/grails-core/releases/download/v2.5.2/grails-2.5.2.zip \
&& unzip grails-2.5.2.zip \
&& ln -s grails-2.5.2 grails
ENV PATH="/root/tools/gradle/bin:/root/tools/grails/bin:${PATH}"
ARG COMMON_VERSION=0.0.1-SNAPSHOT
COPY . /source
RUN cd /source \
&& find -name build.gradle -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-message[^:]*\):.*|\1:$COMMON_VERSION'|g" {} \; \
&& find -name build.gradle -exec sed -i "s|\(.*org.bigbluebutton.*bbb-common-web[^:]*\):.*|\1:$COMMON_VERSION'|g" {} \;
RUN cd /source \
&& gradle resolveDeps \
&& grails war
FROM tomcat:7-jre8
WORKDIR $CATALINA_HOME
ENV DOCKERIZE_VERSION v0.6.1
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
&& apt-get -y install imagemagick xpdf-utils netcat libreoffice ttf-liberation fonts-crosextra-carlito fonts-crosextra-caladea unzip procps \
&& wget http://ftp.us.debian.org/debian/pool/main/libj/libjpeg8/libjpeg8_8d-1+deb7u1_amd64.deb \
&& dpkg -i libjpeg8*.deb \
&& rm libjpeg8*.deb
RUN echo "deb http://ubuntu.bigbluebutton.org/xenial-200-dev bigbluebutton-xenial main " | tee /etc/apt/sources.list.d/bigbluebutton.list \
&& wget http://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc -O- | apt-key add - \
&& apt-get update \
&& apt-get -y install bbb-swftools
# clean default webapps
RUN rm -r webapps/*
COPY --from=builder /source/target/bigbluebutton-0.9.0.war webapps/bigbluebutton.war
RUN unzip -q webapps/bigbluebutton.war -d webapps/bigbluebutton \
&& rm webapps/bigbluebutton.war
COPY turn-stun-servers.xml.tmpl turn-stun-servers.xml.tmpl
COPY docker-entrypoint.sh /usr/local/bin/
CMD [ "dockerize", \
"-template", "turn-stun-servers.xml.tmpl:webapps/bigbluebutton/WEB-INF/spring/turn-stun-servers.xml", \
"docker-entrypoint.sh" ]

View File

@ -1,59 +0,0 @@
SHELL=/bin/bash
# in order to build images for bigbluebutton/bigbluebutton-docker, run:
# IMAGE_ACCOUNT=bigbluebutton IMAGE_REPO=bigbluebutton-docker make release
# build options
BUILD_REVISION=`git rev-parse --short HEAD`
BUILD_DIR_BASE=`git rev-parse --git-dir`/..
BUILD_VERSION?=
BUILD_IMAGE=0
IMAGE_ACCOUNT?=
IMAGE_REPO?=
IMAGE_TAG?=latest
TAG_REVISION?=0
all: release
image:
-cd $(DIR) && docker build -t $(IMAGE_NAME):$(IMAGE_TAG) $(BUILD_ARGS) .
if [ "$(BUILD_IMAGE)" == "0" ]; then \
if [ "$(IMAGE_ACCOUNT)" != "" ]; then \
if [ "$(IMAGE_REPO)" != "" ]; then \
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_ACCOUNT)/$(IMAGE_REPO):$(IMAGE_NAME); \
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_ACCOUNT)/$(IMAGE_REPO):$(IMAGE_NAME)-$(IMAGE_TAG); \
if [ "$(TAG_REVISION)" == "1" ]; then \
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_ACCOUNT)/$(IMAGE_REPO):$(IMAGE_NAME)-$(BUILD_REVISION); \
fi \
fi \
else \
if [ "$(IMAGE_REPO)" != "" ]; then \
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_REPO):$(IMAGE_NAME); \
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_REPO):$(IMAGE_NAME)-$(IMAGE_TAG); \
if [ "$(TAG_REVISION)" == "1" ]; then \
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_REPO):$(IMAGE_NAME)-$(BUILD_REVISION); \
fi \
else \
if [ "$(TAG_REVISION)" == "1" ]; then \
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_NAME):$(BUILD_REVISION); \
fi \
fi \
fi \
fi
release:
make image DIR=$(BUILD_DIR_BASE)/labs/docker/sbt IMAGE_NAME=sbt IMAGE_TAG=0.13.8 BUILD_IMAGE=1
make image DIR=$(BUILD_DIR_BASE)/bbb-common-message IMAGE_NAME=bbb-common-message BUILD_ARGS="--build-arg COMMON_VERSION=0.0.1-SNAPSHOT" BUILD_IMAGE=1
make image DIR=$(BUILD_DIR_BASE)/bbb-common-web IMAGE_NAME=bbb-common-web BUILD_ARGS="--build-arg COMMON_VERSION=0.0.1-SNAPSHOT" BUILD_IMAGE=1
make image DIR=$(BUILD_DIR_BASE)/bbb-fsesl-client IMAGE_NAME=bbb-fsesl-client BUILD_ARGS="--build-arg COMMON_VERSION=0.0.1-SNAPSHOT" BUILD_IMAGE=1
make image DIR=$(BUILD_DIR_BASE)/akka-bbb-apps IMAGE_NAME=bbb-apps-akka BUILD_ARGS="--build-arg COMMON_VERSION=0.0.1-SNAPSHOT"
make image DIR=$(BUILD_DIR_BASE)/akka-bbb-fsesl IMAGE_NAME=bbb-fsesl-akka BUILD_ARGS="--build-arg COMMON_VERSION=0.0.1-SNAPSHOT"
make image DIR=$(BUILD_DIR_BASE)/bigbluebutton-web IMAGE_NAME=bbb-web BUILD_ARGS="--build-arg COMMON_VERSION=0.0.1-SNAPSHOT"
make image DIR=$(BUILD_DIR_BASE)/bigbluebutton-html5 IMAGE_NAME=bbb-html5
make image DIR=$(BUILD_DIR_BASE)/labs/bbb-webrtc-sfu IMAGE_NAME=bbb-webrtc-sfu
make image DIR=$(BUILD_DIR_BASE)/bbb-webhooks IMAGE_NAME=bbb-webhooks
make image DIR=$(BUILD_DIR_BASE)/labs/docker/kurento IMAGE_NAME=bbb-kurento
make image DIR=$(BUILD_DIR_BASE)/labs/docker/freeswitch IMAGE_NAME=bbb-freeswitch
make image DIR=$(BUILD_DIR_BASE)/labs/docker/nginx IMAGE_NAME=bbb-nginx
make image DIR=$(BUILD_DIR_BASE)/labs/docker/coturn IMAGE_NAME=bbb-coturn
make image DIR=$(BUILD_DIR_BASE)/bbb-lti IMAGE_NAME=bbb-lti

View File

@ -1,274 +0,0 @@
IMPORTANT: this is a work in progress!
# Purpose
The purpose of this repo is to get BigBlueButton working in a multi-container Docker configuration over a single port, then to deploy and scale it using Kubernetes
# Launching BBB via Docker
## Prerequisites
#### Ensure you have the latest version of Docker-CE by following the install steps
Ubuntu: https://docs.docker.com/install/linux/docker-ce/ubuntu/
Fedora: https://docs.docker.com/install/linux/docker-ce/fedora/
#### Make sure to also do the post install steps
https://docs.docker.com/install/linux/linux-postinstall/
#### Install docker-compose
Ubuntu:
```
sudo apt-get install docker-compose
```
Fedora:
```
sudo dnf install docker-compose
```
## Build all docker images
#### Build all docker images with one command
```
cd labs/docker/
make release
```
#### Verify that you have all the necessary images
```
docker images
```
You should see:
* sbt
* bbb-common-message
* bbb-common-web
* bbb-fsesl-client
* bbb-apps-akka
* bbb-fsesl-akka
* bbb-web
* bbb-html5
* bbb-webrtc-sfu
* bbb-webhooks
* bbb-kurento
* bbb-freeswitch
* bbb-nginx
* bbb-coturn
* bbb-lti
In the event that any of the above images are missing, you'll need to build them individually
## Build images individually
sbt is needed to build the Scala components
```
cd labs/docker/sbt/
docker build -t 'sbt:0.13.8' .
```
Build libraries
```
cd bbb-common-message/
docker build -t 'bbb-common-message' --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
cd bbb-common-web/
docker build -t 'bbb-common-web' --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
cd bbb-fsesl-client/
docker build -t 'bbb-fsesl-client' --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
```
Build akka components
```
cd akka-bbb-apps/
docker build -t bbb-apps-akka --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
# Not needed since we're setting up HTML5 only
cd akka-bbb-transcode/
docker build -t bbb-transcode --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
cd akka-bbb-fsesl/
docker build -t bbb-fsesl-akka --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
```
Build bbb-web
```
cd bigbluebutton-web/
docker build -t bbb-web --build-arg COMMON_VERSION=0.0.1-SNAPSHOT .
```
Build bbb-html5
```
cd bigbluebutton-html5/
docker build -t bbb-html5 .
```
Build bbb-webrtc-sfu
```
cd labs/bbb-webrtc-sfu/
docker build -t bbb-webrtc-sfu .
```
Build bbb-webhooks
```
cd bbb-webhooks/
docker build -t bbb-webhooks .
```
Build Kurento Media Server
```
cd labs/docker/kurento/
docker build -t bbb-kurento .
```
Build FreeSWITCH
```
cd labs/docker/freeswitch/
docker build -t bbb-freeswitch .
```
Build nginx
```
cd labs/docker/nginx/
docker build -t bbb-nginx .
```
Build coturn
```
cd labs/docker/coturn
docker build -t bbb-coturn .
```
(Optional) Build bbb-lti
```
cd bbb-lti/
docker build -t bbb-lti .
```
## Setup
#### Export your configuration as environment variables
NOTE: replace the example SERVER_DOMAIN's value with your own FQDN
```
export SERVER_DOMAIN=docker.bigbluebutton.org
export EXTERNAL_IP=$(dig +short $SERVER_DOMAIN | grep '^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$' | head -n 1)
export SHARED_SECRET=`openssl rand -hex 16`
export COTURN_REST_SECRET=`openssl rand -hex 16`
export SECRET_KEY_BASE=`openssl rand -hex 64`
export SCREENSHARE_EXTENSION_KEY=akgoaoikmbmhcopjgakkcepdgdgkjfbc
export SCREENSHARE_EXTENSION_LINK=https://chrome.google.com/webstore/detail/bigbluebutton-screenshare/akgoaoikmbmhcopjgakkcepdgdgkjfbc
export TAG_PREFIX=
export TAG_SUFFIX=
```
#### Create a volume for the SSL certs
```
docker volume create docker_ssl-conf
```
#### Generate SSL certs
```
docker run --rm -p 80:80 -v docker_ssl-conf:/etc/letsencrypt -it certbot/certbot certonly --non-interactive --register-unsafely-without-email --agree-tos --expand --domain $SERVER_DOMAIN --standalone
# certificate path: docker_ssl-conf/live/$SERVER_DOMAIN/fullchain.pem
# key path: docker_ssl-conf/live/$SERVER_DOMAIN/privkey.pem
```
NOTE: If running on AWS, you won't be able to use the default Public DNS for your SERVER_DOMAIN as Let's Encrypt doesn't allow generating SSL certs from any *.amazonaws.com domain. Alternatively, you can create a PTR record that goes from a non-AWS FQDN to the AWS FQDN.
#### Create a volume for the static files (optional)
```
docker volume create docker_static
cd bigbluebutton-config/web/
docker run -d --rm --name nginx -v docker_static:/var/www/bigbluebutton-default nginx tail -f /dev/null
docker cp . nginx:/var/www/bigbluebutton-default
docker exec -it nginx chown -R www-data:www-data /var/www/bigbluebutton-default
docker stop nginx
```
#### Ensure the following ports are open
* TCP/UDP 3478
* TCP 80
* TCP 443
## Run
#### Launch everything with docker compose
```
cd labs/docker/
docker-compose up
```
#### Access your server via greenlight and create meetings
https://<your_fqdn_here>/b
#### To shut down and exit gracefully
```
CTRL+C
```
# Setting up a Kubernetes Cluster
## Prerequisites
#### Install kubeadm, kubelet, and kubectl
https://kubernetes.io/docs/setup/independent/install-kubeadm/
#### Disable swap by commenting out the "swap" line in /etc/fstab, then do a reboot
```
sudo vi /etc/fstab
sudo systemctl reboot
```
#### Verify swap is disabled
```
sudo free -h
```
#### Install Minikube
https://kubernetes.io/docs/tasks/tools/install-minikube/
#### Install VirtualBox Manager
Ubuntu:
```
sudo apt-get install virtualbox
```
Fedora:
```
sudo dnf install virtualbox
```
## Setup
#### The following kernel modules are required to avoid preflight errors and warnings during cluster setup
* ip_vs
* ip_vs_rr
* ip_vs_wrr
* ip_vs_sh
#### Check if kernel modules are already loaded
```
lsmod | grep ip_vs
```
#### Add the kernel modules (if not already loaded)
```
sudo modprobe ip_vs
sudo modprobe ip_vs_rr
sudo modprobe ip_vs_wrr
sudo modprobe ip_vs_sh
```
#### Create a single master cluster with kubeadm
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

View File

@ -1,14 +0,0 @@
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y coturn wget
ENV DOCKERIZE_VERSION v0.6.1
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
COPY ./turnserver.conf.tmpl /etc/turnserver.conf.tmpl
CMD [ "dockerize", \
"-template", "/etc/turnserver.conf.tmpl:/etc/turnserver.conf", \
"turnserver", "--syslog" ]

View File

@ -1,14 +0,0 @@
listening-port={{ .Env.PORT }}
min-port=49152
max-port=65535
fingerprint
lt-cred-mech
realm={{ .Env.SERVER_DOMAIN }}
external-ip={{ .Env.EXTERNAL_IP }}
{{ if isTrue .Env.ENABLE_REST_API }}
use-auth-secret
static-auth-secret={{ .Env.SECRET }}
{{ else }}
user={{ .Env.LT_USER }}:{{ .Env.LT_SECRET }}
{{ end }}

View File

@ -1,183 +0,0 @@
version: '2'
services:
mongo:
image: mongo:3.4
restart: unless-stopped
redis:
image: redis
restart: unless-stopped
bbb-html5:
image: ${TAG_PREFIX}bbb-html5${TAG_SUFFIX}
restart: unless-stopped
depends_on:
- mongo
- redis
environment:
MONGO_URL: mongodb://mongo/bbbhtml5
METEOR_SETTINGS_MODIFIER: ".public.kurento.wsUrl = \"wss://${SERVER_DOMAIN}/bbb-webrtc-sfu\" | .public.kurento.enableVideo = true | .public.kurento.enableScreensharing = true | .public.kurento.chromeDefaultExtensionKey = \"${SCREENSHARE_EXTENSION_KEY}\" | .public.kurento.chromeDefaultExtensionLink = \"${SCREENSHARE_EXTENSION_LINK}\" | .public.kurento.enableVideoStats = true | .public.kurento.enableListenOnly = true"
REDIS_HOST: redis
ROOT_URL: http://127.0.0.1/html5client
labels:
- "traefik.backend=bbb-html5"
- "traefik.frontend.rule=PathPrefix: /html5client,/_timesync"
bbb-webhooks:
image: ${TAG_PREFIX}bbb-webhooks${TAG_SUFFIX}
restart: unless-stopped
depends_on:
- redis
environment:
REDIS_HOST: redis
SHARED_SECRET: ${SHARED_SECRET}
BEARER_AUTH: 1
SERVER_DOMAIN: ${SERVER_DOMAIN}
labels:
- "traefik.backend=bbb-webhooks"
- "traefik.frontend.rule=PathPrefix: /bigbluebutton/api/hooks"
bbb-freeswitch:
image: ${TAG_PREFIX}bbb-freeswitch${TAG_SUFFIX}
restart: unless-stopped
depends_on:
- coturn
volumes:
- media-audio:/var/freeswitch/meetings
bbb-webrtc-sfu:
image: ${TAG_PREFIX}bbb-webrtc-sfu${TAG_SUFFIX}
restart: unless-stopped
depends_on:
- redis
- kurento
- bbb-freeswitch
environment:
KURENTO_NAME: kurento
KURENTO_URL: ws://kurento:8888/kurento
REDIS_HOST: redis
FREESWITCH_IP: bbb-freeswitch
LOG_LEVEL: debug
labels:
- "traefik.backend=bbb-webrtc-sfu"
- "traefik.frontend.rule=PathPrefix: /bbb-webrtc-sfu"
coturn:
image: ${TAG_PREFIX}bbb-coturn${TAG_SUFFIX}
restart: unless-stopped
environment:
TURN_DOMAIN: ${SERVER_DOMAIN}
SECRET: ${COTURN_REST_SECRET}
EXTERNAL_IP: ${EXTERNAL_IP}
ENABLE_REST_API: 1
PORT: 3478
ports:
- 3478:3478/udp
- 3478:3478/tcp
kurento:
image: ${TAG_PREFIX}bbb-kurento${TAG_SUFFIX}
restart: unless-stopped
volumes:
- media-video:/var/kurento/recordings
- media-screenshare:/var/kurento/screenshare
environment:
STUN_IP: ${EXTERNAL_IP}
STUN_PORT: 3478
bbb-apps-akka:
image: ${TAG_PREFIX}bbb-apps-akka${TAG_SUFFIX}
restart: unless-stopped
depends_on:
- redis
environment:
JAVA_OPTS: -Dredis.host=redis
bbb-fsesl-akka:
image: ${TAG_PREFIX}bbb-fsesl-akka${TAG_SUFFIX}
restart: unless-stopped
depends_on:
- bbb-freeswitch
- redis
command: ["wait-for-it.sh", "bbb-freeswitch:8021", "--timeout=60", "--strict", "--", "/usr/share/bbb-fsesl-akka/bin/bbb-fsesl-akka"]
environment:
JAVA_OPTS: -Dredis.host=redis -Dfreeswitch.esl.host=bbb-freeswitch
bbb-web:
image: ${TAG_PREFIX}bbb-web${TAG_SUFFIX}
restart: unless-stopped
depends_on:
- redis
volumes:
- bigbluebutton:/var/bigbluebutton
environment:
SERVER_DOMAIN: ${SERVER_DOMAIN}
SHARED_SECRET: ${SHARED_SECRET}
TURN_DOMAIN: ${SERVER_DOMAIN}
TURN_SECRET: ${COTURN_REST_SECRET}
labels:
- "traefik.backend=bbb-web"
- "traefik.frontend.rule=PathPrefix: /bigbluebutton"
bbb-greenlight:
image: bigbluebutton/greenlight:v2
restart: unless-stopped
volumes:
- greenlight_db:/usr/src/app/db/production
- greenlight_logs:/usr/src/app/log
environment:
BIGBLUEBUTTON_ENDPOINT: https://${SERVER_DOMAIN}/bigbluebutton/
BIGBLUEBUTTON_SECRET: ${SHARED_SECRET}
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
ALLOW_GREENLIGHT_ACCOUNTS: "true"
labels:
- "traefik.backend=bbb-greenlight"
- "traefik.frontend.rule=PathPrefix: /b"
# when we're able to setup traefik properly for wss, nginx is no longer needed
nginx:
image: ${TAG_PREFIX}bbb-nginx${TAG_SUFFIX}
restart: unless-stopped
depends_on:
- bbb-freeswitch
environment:
SERVER_DOMAIN: ${SERVER_DOMAIN}
labels:
- "traefik.backend=bbb-freeswitch"
- "traefik.frontend.rule=PathPrefix: /ws"
traefik:
image: traefik
restart: unless-stopped
ports:
- 80:80
- 8080:8080
- 443:443
command: traefik
- --docker
- --logLevel=INFO
- --acme
- --acme.httpchallenge
- --acme.httpchallenge.entrypoint=http
- --acme.acmelogging
- --acme.storage=/etc/traefik/acme/acme.json
- --acme.email=felipe@mconf.com
- --acme.entrypoint=https
- --acme.domains=${SERVER_DOMAIN}
- --defaultentrypoints=http,https
- --entryPoints='Name:http Address::80 Redirect.EntryPoint:https'
- --entryPoints='Name:https Address::443 TLS'
volumes:
- traefik-acme:/etc/traefik/acme/
- /var/run/docker.sock:/var/run/docker.sock
volumes:
traefik-acme:
static:
bigbluebutton:
media-audio:
media-video:
media-screenshare:
greenlight_db:
greenlight_logs:

View File

@ -1,24 +0,0 @@
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
&& apt-get -y install wget libedit-dev xmlstarlet
RUN echo "deb http://ubuntu.bigbluebutton.org/xenial-200-dev bigbluebutton-xenial main " | tee /etc/apt/sources.list.d/bigbluebutton.list \
&& wget http://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc -O- | apt-key add - \
&& apt-get update \
&& apt-get -y install bbb-freeswitch-core \
&& find /opt/freeswitch/conf/sip_profiles/ -name "*ipv6*" -prune -exec rm -rf "{}" \;
EXPOSE 7443
COPY docker-entrypoint.sh /usr/local/bin/
COPY event_socket_conf.xml /opt/freeswitch/conf/autoload_configs/event_socket.conf.xml
RUN wget -O /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_amd64 \
&& chmod +x /usr/local/bin/dumb-init
ENTRYPOINT ["/usr/local/bin/dumb-init", "--"]
CMD [ "docker-entrypoint.sh" ]

View File

@ -1,14 +0,0 @@
#!/bin/bash -xe
IP=$(hostname -I | cut -d' ' -f1)
xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "external_rtp_ip=")]/@data' --value "stun:coturn" /opt/freeswitch/conf/vars.xml
xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "external_sip_ip=")]/@data' --value "stun:coturn" /opt/freeswitch/conf/vars.xml
xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "local_ip_v4=")]/@data' --value "${IP}" /opt/freeswitch/conf/vars.xml
# add wss-binding element
xmlstarlet edit --inplace --subnode '//settings' --type elem --name 'newsubnode' --value '' /opt/freeswitch/conf/sip_profiles/external.xml
xmlstarlet edit --inplace --insert '//newsubnode' --type attr --name 'name' --value 'wss-binding' /opt/freeswitch/conf/sip_profiles/external.xml
xmlstarlet edit --inplace --insert '//newsubnode' --type attr --name 'value' --value ':7443' /opt/freeswitch/conf/sip_profiles/external.xml
xmlstarlet edit --inplace --rename '//newsubnode' --value 'param' /opt/freeswitch/conf/sip_profiles/external.xml
/opt/freeswitch/bin/freeswitch

View File

@ -1,10 +0,0 @@
<?xml version="1.0"?>
<configuration name="event_socket.conf" description="Socket Client">
<settings>
<param name="nat-map" value="false"/>
<param name="listen-ip" value="0.0.0.0"/>
<param name="listen-port" value="8021"/>
<param name="password" value="ClueCon"/>
<param name="apply-inbound-acl" value="localnet.auto"/>
</settings>
</configuration>

View File

@ -1,45 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-apps-akka
version: latest
name: bbb-apps-akka
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-apps-akka
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-apps-akka
version: latest
name: bbb-apps-akka
spec:
containers:
- env:
- name: JAVA_OPTS
value: -Dredis.host=redis
image: fcecagno/bigbluebutton:bbb-apps-akka
imagePullPolicy: Always
name: bbb-apps-akka
ports:
- containerPort: 8080
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule

View File

@ -1,71 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-coturn
version: latest
name: bbb-coturn
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-coturn
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-coturn
version: latest
name: bbb-coturn
spec:
containers:
- env:
- name: PORT
value: "3478"
- name: SERVER_DOMAIN
value: bigbluebutton.rocket.chat
- name: SECRET
value: "54321"
- name: EXTERNAL_IP
value: "35.185.19.180"
- name: ENABLE_REST_API
value: "1"
image: fcecagno/bigbluebutton:bbb-coturn
imagePullPolicy: Always
name: bbb-coturn
ports:
- containerPort: 3478
protocol: TCP
- containerPort: 3478
protocol: UDP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: bbb-coturn
namespace: bigbluebutton
annotations:
traefik.backend.circuitbreaker: "NetworkErrorRatio() > 0.5"
spec:
ports:
- name: http
targetPort: 3478
port: 3478
selector:
app: bbb-coturn

View File

@ -1,79 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-freeswitch-nginx
version: latest
name: bbb-freeswitch-nginx
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-freeswitch-nginx
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-freeswitch-nginx
version: latest
name: bbb-freeswitch-nginx
spec:
containers:
- env:
- name: SERVER_DOMAIN
value: bigbluebutton.rocket.chat
image: fcecagno/bigbluebutton:bbb-nginx
imagePullPolicy: Always
name: bbb-freeswitch-nginx
ports:
- containerPort: 80
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: bbb-freeswitch-nginx
namespace: bigbluebutton
annotations:
traefik.backend.circuitbreaker: "NetworkErrorRatio() > 0.5"
spec:
ports:
- name: http
targetPort: 80
port: 80
selector:
app: bbb-freeswitch-nginx
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: bbb-freeswitch-nginx
namespace: bigbluebutton
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: bigbluebutton.rocket.chat
http:
paths:
- path: /ws
backend:
serviceName: bbb-freeswitch-nginx
servicePort: 80

View File

@ -1,63 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-freeswitch
version: latest
name: bbb-freeswitch
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-freeswitch
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-freeswitch
version: latest
name: bbb-freeswitch
spec:
containers:
- image: fcecagno/bigbluebutton:bbb-freeswitch
imagePullPolicy: Always
name: bbb-freeswitch
ports:
- containerPort: 7443
protocol: TCP
- containerPort: 8021
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: bbb-freeswitch
namespace: bigbluebutton
annotations:
traefik.backend.circuitbreaker: "NetworkErrorRatio() > 0.5"
spec:
ports:
- name: http
targetPort: 7443
port: 7443
- name: freeswitch-8021
targetPort: 8021
port: 8021
selector:
app: bbb-freeswitch

View File

@ -1,43 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-fsesl-akka
version: latest
name: bbb-fsesl-akka
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-fsesl-akka
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-fsesl-akka
version: latest
name: bbb-fsesl-akka
spec:
containers:
- env:
- name: JAVA_OPTS
value: -Dredis.host=redis -Dfreeswitch.esl.host=bbb-freeswitch
image: fcecagno/bigbluebutton:bbb-fsesl-akka
imagePullPolicy: Always
name: bbb-fsesl-akka
command: ["wait-for-it.sh", "bbb-freeswitch:8021", "--timeout=60", "--strict", "--", "/usr/share/bbb-fsesl-akka/bin/bbb-fsesl-akka"]
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule

View File

@ -1,91 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-html5
version: latest
name: bbb-html5
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-html5
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-html5
version: latest
name: bbb-html5
spec:
containers:
- env:
- name: MONGO_URL
value: mongodb://mongo:27017/
- name: MONGO_DB
value: bbbhtml5
- name: METEOR_SETTINGS_MODIFIER
value: ".public.kurento.wsUrl = \"wss://bigbluebutton.rocket.chat/bbb-webrtc-sfu\" | .public.kurento.enableVideo = true | .public.kurento.enableScreensharing = true | .public.kurento.enableVideoStats = true | .public.kurento.enableListenOnly = true"
- name: REDIS_HOST
value: redis
- name: ROOT_URL
value: http://127.0.0.1/html5client
image: fcecagno/bigbluebutton:bbb-html5
imagePullPolicy: Always
name: bbb-html5
ports:
- containerPort: 3000
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: bbb-html5
namespace: bigbluebutton
annotations:
traefik.backend.circuitbreaker: "NetworkErrorRatio() > 0.5"
spec:
ports:
- name: http
targetPort: 3000
port: 3000
selector:
app: bbb-html5
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: bbb-html5
namespace: bigbluebutton
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: bigbluebutton.rocket.chat
http:
paths:
- path: /html5client
backend:
serviceName: bbb-html5
servicePort: 3000
- path: /_timesync
backend:
serviceName: bbb-html5
servicePort: 3000

View File

@ -1,69 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-kurento
version: latest
name: bbb-kurento
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-kurento
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-kurento
version: latest
name: bbb-kurento
spec:
containers:
- env:
- name: STUN_IP
# TODO: how to get this IP?
value: "35.185.19.180"
- name: STUN_PORT
value: "3478"
image: fcecagno/bigbluebutton:bbb-kurento
imagePullPolicy: Always
name: bbb-kurento
ports:
- containerPort: 8888
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: bbb-kurento
namespace: bigbluebutton
annotations:
traefik.backend.circuitbreaker: "NetworkErrorRatio() > 0.5"
spec:
ports:
- name: http
targetPort: 8888
port: 8888
selector:
app: bbb-kurento
# volumes:
# - media-video:/var/kurento/recordings
# - media-screenshare:/var/kurento/screenshare

View File

@ -1,85 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-web
version: latest
name: bbb-web
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-web
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-web
version: latest
name: bbb-web
spec:
containers:
- env:
- name: SERVER_DOMAIN
value: bigbluebutton.rocket.chat
- name: SHARED_SECRET
value: "12345"
- name: TURN_SECRET
value: "54321"
- name: TURN_DOMAIN
value: bigbluebutton.rocket.chat
image: fcecagno/bigbluebutton:bbb-web
imagePullPolicy: Always
name: bbb-web
ports:
- containerPort: 8080
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: bbb-web
namespace: bigbluebutton
annotations:
traefik.backend.circuitbreaker: "NetworkErrorRatio() > 0.5"
spec:
ports:
- name: http
targetPort: 8080
port: 8080
selector:
app: bbb-web
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: bbb-web
namespace: bigbluebutton
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: bigbluebutton.rocket.chat
http:
paths:
- path: /bigbluebutton
backend:
serviceName: bbb-web
servicePort: 8080

View File

@ -1,85 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-webhooks
version: latest
name: bbb-webhooks
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-webhooks
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-webhooks
version: latest
name: bbb-webhooks
spec:
containers:
- env:
- name: REDIS_HOST
value: redis
- name: SHARED_SECRET
value: "12345"
- name: SERVER_DOMAIN
value: bigbluebutton.rocket.chat
- name: BEARER_AUTH
value: "1"
image: fcecagno/bigbluebutton:bbb-webhooks
imagePullPolicy: Always
name: bbb-webhooks
ports:
- containerPort: 3005
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: bbb-webhooks
namespace: bigbluebutton
annotations:
traefik.backend.circuitbreaker: "NetworkErrorRatio() > 0.5"
spec:
ports:
- name: http
targetPort: 3005
port: 3005
selector:
app: bbb-webhooks
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: bbb-webhooks
namespace: bigbluebutton
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: bigbluebutton.rocket.chat
http:
paths:
- path: /bigbluebutton/api/hooks
backend:
serviceName: bbb-webhooks
servicePort: 3005

View File

@ -1,87 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: bbb-webrtc-sfu
version: latest
name: bbb-webrtc-sfu
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: bbb-webrtc-sfu
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: bbb-webrtc-sfu
version: latest
name: bbb-webrtc-sfu
spec:
containers:
- env:
- name: KURENTO_NAME
value: kurento
- name: KURENTO_URL
value: ws://bbb-kurento:8888/kurento
- name: REDIS_HOST
value: redis
- name: FREESWITCH_IP
value: bbb-freeswitch
- name: LOG_LEVEL
value: debug
image: fcecagno/bigbluebutton:bbb-webrtc-sfu
imagePullPolicy: Always
name: bbb-webrtc-sfu
ports:
- containerPort: 3008
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: bbb-webrtc-sfu
namespace: bigbluebutton
annotations:
traefik.backend.circuitbreaker: "NetworkErrorRatio() > 0.5"
spec:
ports:
- name: http
targetPort: 3008
port: 3008
selector:
app: bbb-webrtc-sfu
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: bbb-webrtc-sfu
namespace: bigbluebutton
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: bigbluebutton.rocket.chat
http:
paths:
- path: /bbb-webrtc-sfu
backend:
serviceName: bbb-webrtc-sfu
servicePort: 3008

View File

@ -1,4 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: bigbluebutton

View File

@ -1,55 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: mongo
version: latest
name: mongo
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: mongo
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: mongo
version: latest
name: mongo
spec:
containers:
- image: mongo:3.6
imagePullPolicy: Always
name: mongo
ports:
- containerPort: 27017
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: mongo
namespace: bigbluebutton
spec:
ports:
- targetPort: 27017
port: 27017
selector:
app: mongo

View File

@ -1,55 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: redis
version: latest
name: redis
namespace: bigbluebutton
spec:
replicas: 1
selector:
matchLabels:
app: redis
version: latest
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app: redis
version: latest
name: redis
spec:
containers:
- image: redis:latest
imagePullPolicy: Always
name: redis
ports:
- containerPort: 6379
protocol: TCP
restartPolicy: Always
terminationGracePeriodSeconds: 30
nodeSelector:
role: 'bigbluebutton'
tolerations:
- key: role
operator: Equal
value: 'bigbluebutton'
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: bigbluebutton
spec:
ports:
- targetPort: 6379
port: 6379
selector:
app: redis

View File

@ -1,41 +0,0 @@
FROM ubuntu:16.04
# In order to build kurento dev, use:
# docker build --build-arg APT_KEY="http://keyserver.ubuntu.com/pks/lookup?op=get&options=mr&search=0xFC8A16625AFA7A83" --build-arg APT_REPO="deb [arch=amd64] http://ubuntu.openvidu.io/dev xenial kms6" --build-arg CACHE_BUST="$(date +%s)" -t mconf/kurento:upstream-dev .
ARG APT_KEY="https://ubuntu.bigbluebutton.org/repo/bigbluebutton.asc"
ARG APT_REPO="deb https://ubuntu.bigbluebutton.org/xenial-220-dev bigbluebutton-xenial main"
ARG CACHE_BUST=1
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update \
&& apt-get -y dist-upgrade \
&& apt-get install -y software-properties-common curl wget apt-transport-https
RUN wget "$APT_KEY" -O- | apt-key add - \
&& add-apt-repository "$APT_REPO" \
&& apt-get update \
&& apt-get -y install kurento-media-server bzip2 jq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update \
&& apt-get install -y --download-only openh264-gst-plugins-bad-1.5
COPY ./docker-entrypoint.sh /usr/local/bin/
COPY ./healthchecker.sh /healthchecker.sh
ENV GST_DEBUG=Kurento*:5
ENV PORT=8888
# stun.l.google.com
ENV STUN_IP=64.233.186.127
ENV STUN_PORT=19302
ENV TURN_URL=""
ENV RTP_MIN_PORT=24577
ENV RTP_MAX_PORT=32768
HEALTHCHECK --start-period=15s --interval=30s --timeout=3s --retries=1 CMD /healthchecker.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["/usr/bin/kurento-media-server"]

View File

@ -1,25 +0,0 @@
#!/bin/bash -e
apt-get install -y openh264-gst-plugins-bad-1.5
rm -f /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini
# Generate WebRtcEndpoint configuration
echo "stunServerAddress=$STUN_IP" >> /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini
echo "stunServerPort=$STUN_PORT" >> /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini
if [ "$TURN_URL" != "" ]; then
echo "turnURL=$TURN_URL" >> /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini
fi
rm -f /etc/kurento/modules/kurento/BaseRtpEndpoint.conf.ini
# Generate BaseRtpEndpoint configuration
echo "minPort=$RTP_MIN_PORT" >> /etc/kurento/modules/kurento/BaseRtpEndpoint.conf.ini
echo "maxPort=$RTP_MAX_PORT" >> /etc/kurento/modules/kurento/BaseRtpEndpoint.conf.ini
CONFIG=$(cat /etc/kurento/kurento.conf.json | sed '/^[ ]*\/\//d' | jq ".mediaServer.net.websocket.port = $PORT")
echo $CONFIG > /etc/kurento/kurento.conf.json
# Remove ipv6 local loop until ipv6 is supported
cat /etc/hosts | sed '/::1/d' | tee /etc/hosts > /dev/null
exec "$@"

View File

@ -1,3 +0,0 @@
#!/bin/bash
[[ "$(curl -w '%{http_code}' -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Host: 127.0.0.1:$PORT" -H "Origin: 127.0.0.1" http://127.0.0.1:$PORT/kurento)" == 500 ]] && exit 0 || exit 1

View File

@ -1,14 +0,0 @@
FROM nginx
RUN apt-get update && apt-get install -y wget
ENV DOCKERIZE_VERSION v0.6.1
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
COPY ./nginx.conf.tmpl /etc/nginx/nginx.conf.tmpl
CMD [ "dockerize", \
"-template", "/etc/nginx/nginx.conf.tmpl:/etc/nginx/nginx.conf", \
"nginx", "-g", "daemon off;" ]

View File

@ -1,66 +0,0 @@
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
##
# Virtual Host Configs
##
server {
listen 80;
listen [::]:80;
server_name {{ .Env.SERVER_DOMAIN }};
access_log /var/log/nginx/bigbluebutton.access.log;
location /ws {
proxy_pass https://bbb-freeswitch:7443;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_read_timeout 6h;
proxy_send_timeout 6h;
client_body_timeout 6h;
send_timeout 6h;
}
}
}

View File

@ -1,14 +0,0 @@
FROM openjdk:8
ARG SBT_VERSION=0.13.8
RUN curl -L -o sbt-$SBT_VERSION.deb https://dl.bintray.com/sbt/debian/sbt-$SBT_VERSION.deb \
&& dpkg -i sbt-$SBT_VERSION.deb \
&& rm sbt-$SBT_VERSION.deb \
&& apt-get update \
&& apt-get install sbt \
&& sbt sbtVersion
RUN echo 'resolvers += "Artima Maven Repository" at "http://repo.artima.com/releases"' | tee -a ~/.sbt/0.13/global.sbt
WORKDIR /root