From a2773f1e41eeeef03a1143781d35cc816995131e Mon Sep 17 00:00:00 2001
From: Andrej Shadura <andrew.shadura@collabora.co.uk>
Date: Tue, 15 Feb 2022 17:25:48 +0100
Subject: [PATCH] Add a supervisord-managed entrypoint, drop config from the
 image
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The Docker entrypoint saves effort for users: they can map a config
inside a container based on the stock image without having to rebuild it.

Since the config is no longer necessary inside the image, don’t install
it.

Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk>
---
 Dockerfile                   |  7 +++----
 docker/docker-entrypoint.sh  | 13 +++++++++++++
 docker/obs-proxy-client.conf |  9 +++++++++
 docker/obs-proxy-server.conf |  9 +++++++++
 4 files changed, 34 insertions(+), 4 deletions(-)
 create mode 100755 docker/docker-entrypoint.sh
 create mode 100644 docker/obs-proxy-client.conf
 create mode 100644 docker/obs-proxy-server.conf

diff --git a/Dockerfile b/Dockerfile
index 5d8244f..37331e2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -16,12 +16,11 @@ LABEL maintainer Andrej Shadura <andrew.shadura@collabora.co.uk>
 ENV LC_ALL=C.UTF-8
 
 RUN apt-get update \
- && apt-get install -y python3-minimal python3-xdg ssl-cert
+ && apt-get install -y supervisor python3-minimal python3-xdg ssl-cert
 
 COPY --from=builder /usr/local /usr/local
 
 RUN mkdir -p /etc/obs-proxy
-COPY proxy.conf /etc/obs-proxy/
 
-#COPY docker-entrypoint.sh /opt/docker-entrypoint.sh
-#ENTRYPOINT ["/opt/docker-entrypoint.sh"]
+COPY docker/* /opt/
+ENTRYPOINT ["/opt/docker-entrypoint.sh"]
diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh
new file mode 100755
index 0000000..71161bc
--- /dev/null
+++ b/docker/docker-entrypoint.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+if [ "$1" != client ]
+then
+    ln -sf /opt/obs-proxy-server.conf /etc/supervisor/conf.d/
+
+    # Generate ssl-cert
+    make-ssl-cert generate-default-snakeoil --force-overwrite
+else
+    ln -sf /opt/obs-proxy-client.conf /etc/supervisor/conf.d/
+fi
+
+exec /usr/bin/supervisord -n
diff --git a/docker/obs-proxy-client.conf b/docker/obs-proxy-client.conf
new file mode 100644
index 0000000..8ebd120
--- /dev/null
+++ b/docker/obs-proxy-client.conf
@@ -0,0 +1,9 @@
+[program:obs-proxy-client]
+command=/usr/local/bin/obs-proxy-client
+stdout_logfile=/var/log/supervisor/obs-proxy-client.log
+redirect_stderr=true
+autostart=True
+priority=1
+stopsignal=KILL
+killasgroup=true
+stopasgroup=true
diff --git a/docker/obs-proxy-server.conf b/docker/obs-proxy-server.conf
new file mode 100644
index 0000000..25a7b56
--- /dev/null
+++ b/docker/obs-proxy-server.conf
@@ -0,0 +1,9 @@
+[program:obs-proxy-server]
+command=/usr/local/bin/obs-proxy-server
+stdout_logfile=/var/log/supervisor/obs-proxy-server.log
+redirect_stderr=true
+autostart=True
+priority=1
+stopsignal=KILL
+killasgroup=true
+stopasgroup=true
-- 
GitLab