Change in docker-playground[master]: Import freeswitch Dockerfile

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Wed Dec 16 09:53:43 UTC 2020


laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/21736 )


Change subject: Import freeswitch Dockerfile
......................................................................

Import freeswitch Dockerfile

Use https://github.com/signalwire/freeswitch current master
(ae0444e9cbccdee55a80467d605e1e8c3363a36d) which has ancient
Docker containers.

Change-Id: Ib859b0ac869a82239a8c54c6e14ffa36e6497cd4
---
A freeswitch/Dockerfile
A freeswitch/build/freeswitch.limits.conf
A freeswitch/docker-entrypoint.sh
3 files changed, 119 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/36/21736/1

diff --git a/freeswitch/Dockerfile b/freeswitch/Dockerfile
new file mode 100644
index 0000000..ef37e93
--- /dev/null
+++ b/freeswitch/Dockerfile
@@ -0,0 +1,77 @@
+# vim:set ft=dockerfile:
+FROM debian:jessie
+
+# Source Dockerfile:
+# https://github.com/docker-library/postgres/blob/master/9.4/Dockerfile
+
+# explicitly set user/group IDs
+RUN groupadd -r freeswitch --gid=999 && useradd -r -g freeswitch --uid=999 freeswitch
+
+# grab gosu for easy step-down from root
+RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4
+RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \
+    && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/1.2/gosu-$(dpkg --print-architecture)" \
+    && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/1.2/gosu-$(dpkg --print-architecture).asc" \
+    && gpg --verify /usr/local/bin/gosu.asc \
+    && rm /usr/local/bin/gosu.asc \
+    && chmod +x /usr/local/bin/gosu \
+    && apt-get purge -y --auto-remove ca-certificates wget
+
+# make the "en_US.UTF-8" locale so freeswitch will be utf-8 enabled by default
+RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
+    && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
+ENV LANG en_US.utf8
+
+# https://files.freeswitch.org/repo/deb/freeswitch-1.*/dists/jessie/main/binary-amd64/Packages
+
+ENV FS_MAJOR 1.6
+
+RUN sed -i "s/jessie main/jessie main contrib non-free/" /etc/apt/sources.list
+
+# https://freeswitch.org/confluence/display/FREESWITCH/Debian+8+Jessie#Debian8Jessie-InstallingfromDebianpackages
+
+RUN apt-get update && apt-get install -y curl \
+    && curl https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add - \
+    && echo "deb http://files.freeswitch.org/repo/deb/freeswitch-$FS_MAJOR/ jessie main" > /etc/apt/sources.list.d/freeswitch.list \
+    && apt-get purge -y --auto-remove curl
+
+RUN apt-get update && apt-get install -y freeswitch-all \
+    && apt-get clean && rm -rf /var/lib/apt/lists/*
+
+# Clean up
+RUN apt-get autoremove
+
+COPY docker-entrypoint.sh /
+## Ports
+# Open the container up to the world.
+### 8021 fs_cli, 5060 5061 5080 5081 sip and sips, 64535-65535 rtp
+EXPOSE 8021/tcp
+EXPOSE 5060/tcp 5060/udp 5080/tcp 5080/udp
+EXPOSE 5061/tcp 5061/udp 5081/tcp 5081/udp
+EXPOSE 7443/tcp
+EXPOSE 5070/udp 5070/tcp
+EXPOSE 64535-65535/udp
+EXPOSE 16384-32768/udp
+
+
+# Volumes
+## Freeswitch Configuration
+VOLUME ["/etc/freeswitch"]
+## Tmp so we can get core dumps out
+VOLUME ["/tmp"]
+
+# Limits Configuration
+COPY    build/freeswitch.limits.conf /etc/security/limits.d/
+
+# Healthcheck to make sure the service is running
+SHELL       ["/bin/bash"]
+HEALTHCHECK --interval=15s --timeout=5s \
+    CMD  fs_cli -x status | grep -q ^UP || exit 1
+
+## Add additional things here
+
+##
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
+
+CMD ["freeswitch"]
diff --git a/freeswitch/build/freeswitch.limits.conf b/freeswitch/build/freeswitch.limits.conf
new file mode 100644
index 0000000..d6568eb
--- /dev/null
+++ b/freeswitch/build/freeswitch.limits.conf
@@ -0,0 +1,15 @@
+freeswitch       soft    core            unlimited
+freeswitch       soft    data            unlimited
+freeswitch       soft    fsize           unlimited
+freeswitch       soft    memlock         unlimited
+freeswitch       soft    nofile          999999
+freeswitch       soft    rss             unlimited
+freeswitch       hard    stack           240
+freeswitch       soft    cpu             unlimited
+freeswitch       soft    nproc           unlimited
+freeswitch       soft    as              unlimited
+freeswitch       soft    priority        -11
+freeswitch       soft    locks           unlimited
+freeswitch       soft    sigpending      unlimited
+freeswitch       soft    msgqueue        unlimited
+freeswitch       soft    nice            -11
diff --git a/freeswitch/docker-entrypoint.sh b/freeswitch/docker-entrypoint.sh
new file mode 100644
index 0000000..8b645a2
--- /dev/null
+++ b/freeswitch/docker-entrypoint.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+set -e
+
+# Source docker-entrypoint.sh:
+# https://github.com/docker-library/postgres/blob/master/9.4/docker-entrypoint.sh
+# https://github.com/kovalyshyn/docker-freeswitch/blob/vanilla/docker-entrypoint.sh
+
+if [ "$1" = 'freeswitch' ]; then
+
+    if [ ! -f "/etc/freeswitch/freeswitch.xml" ]; then
+        mkdir -p /etc/freeswitch
+        cp -varf /usr/share/freeswitch/conf/vanilla/* /etc/freeswitch/
+    fi
+
+    chown -R freeswitch:freeswitch /etc/freeswitch
+    chown -R freeswitch:freeswitch /var/{run,lib}/freeswitch
+    
+    if [ -d /docker-entrypoint.d ]; then
+        for f in /docker-entrypoint.d/*.sh; do
+            [ -f "$f" ] && . "$f"
+        done
+    fi
+    
+    exec gosu freeswitch /usr/bin/freeswitch -u freeswitch -g freeswitch -nonat -c
+fi
+
+exec "$@"

-- 
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/21736
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: Ib859b0ac869a82239a8c54c6e14ffa36e6497cd4
Gerrit-Change-Number: 21736
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201216/f4724c9c/attachment.htm>


More information about the gerrit-log mailing list