Merge pull request #14814 from antobinary/drop-obsolete-dockerfiles
chore: Drop obsolete Dockerfiles
This commit is contained in:
commit
4a7c2aae16
@ -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"]
|
@ -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"]
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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"]
|
@ -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"]
|
||||
|
@ -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" ]
|
@ -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
|
@ -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/
|
@ -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" ]
|
@ -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 }}
|
@ -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:
|
@ -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" ]
|
@ -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
|
@ -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>
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -1,4 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: bigbluebutton
|
@ -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
|
@ -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
|
@ -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"]
|
@ -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 "$@"
|
@ -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
|
@ -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;" ]
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
Loading…
Reference in New Issue
Block a user