From 18700de615c0bf57942ce4cfb847d16d04db0f81 Mon Sep 17 00:00:00 2001
From: Udai Singh <udai.singh@desy.de>
Date: Tue, 14 May 2024 10:24:11 +0200
Subject: [PATCH] added docker

---
 AUTHORS.rst             |  1 +
 docker/Dockerfile       | 44 +++++++++++++++++++++++++++++++++++++++
 docker/supervisord.conf | 46 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 91 insertions(+)
 create mode 100644 docker/Dockerfile
 create mode 100644 docker/supervisord.conf

diff --git a/AUTHORS.rst b/AUTHORS.rst
index f022700..b59e957 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -3,3 +3,4 @@ Contributors
 ============
 
 * Udai Singh <udai.singh@desy.de>
+pytest
\ No newline at end of file
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000..3df9c2d
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,44 @@
+FROM condaforge/mambaforge:23.3.1-1
+
+# Set timezone
+ENV TZ=Europe/Paris
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+# Update and basic install
+RUN apt-get update && \
+    apt-get install -y --no-install-recommends tzdata curl wget bzip2 build-essential git libgl1-mesa-glx xvfb libxrender1 && \
+    apt-get clean autoclean && apt-get autoremove --yes && \
+    rm -rf /var/lib/apt/lists/*
+
+# Clone repos
+WORKDIR /
+
+RUN git clone https://gitlab.desy.de/fs-ec/bluesky_blissdata.git
+    
+# Setup environment
+RUN conda config --append channels esrf-bcu && \
+    conda config --append channels tango-controls
+
+WORKDIR /bluesky_blissdata
+
+RUN ["/bin/bash", "-c", ". /opt/conda/etc/profile.d/conda.sh && \
+    . /opt/conda/etc/profile.d/mamba.sh && \
+    mamba create -n bluesky_blissdata python=3.9 &&\
+    conda config --env --append channels esrf-bcu &&\
+    mamba activate  bluesky_blissdata && \
+    mamba install blissdata && \
+    pip install -e . &&\
+    # Bliss makefile will have used pip cache
+    rm -rf /root/.cache/pip && \
+    # https://jcristharif.com/conda-docker-tips.html
+    find /opt/conda/ -follow -type f -name '*.a' -delete && \
+    find /opt/conda/ -follow -type f -name '*.pyc' -delete && \
+    find /opt/conda/ -follow -type f -name '*.js.map' -delete"]
+
+RUN ["/bin/bash", "-c", ". /opt/conda/etc/profile.d/conda.sh && \
+    . /opt/conda/etc/profile.d/mamba.sh && \
+    pip install --no-cache-dir pyzmq==22.3.0 supervisor multivisor[web]"]
+
+COPY ./supervisord.conf /etc/supervisor/supervisord.conf
+
+ENTRYPOINT ["/bin/bash", "-c", ". /opt/conda/etc/profile.d/conda.sh && supervisord"]
\ No newline at end of file
diff --git a/docker/supervisord.conf b/docker/supervisord.conf
new file mode 100644
index 0000000..7b5b1ae
--- /dev/null
+++ b/docker/supervisord.conf
@@ -0,0 +1,46 @@
+[supervisord]
+nodaemon=true
+silent=true
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl=http://127.0.0.1:9032
+
+[inet_http_server]
+port = 9032
+
+; new rpc interface for multivisor
+[rpcinterface:multivisor]
+supervisor.rpcinterface_factory = multivisor.rpc:make_rpc_interface
+bind=*:9034
+
+[group:bliss]
+programs=bliss_data
+
+[program:bliss_data]
+command=bash -c ". /opt/conda/etc/profile.d/conda.sh && conda activate  bluesky_blissdata && bluesky_blissdata --redis_port=$redis_port --redis_host=$redis_host -vv"
+environment=HOME=/
+priority=0
+user=root
+startsecs=5
+autostart=true
+redirect_stderr=true
+stdout_logfile=/var/log/bliss_data.log
+stdout_logfile_maxbytes=1MB
+stdout_logfile_backups=10
+stdout_capture_maxbytes=1MB
+
+[program:bluesky_zmq]
+command=bash -c ". /opt/conda/etc/profile.d/conda.sh && conda activate  bluesky_blissdata && bluesky-0MQ-proxy 5577 5578"
+environment=HOME=/
+priority=0
+user=root
+startsecs=5
+autostart=true
+redirect_stderr=true
+stdout_logfile=/var/log/beacon.log
+stdout_logfile_maxbytes=1MB
+stdout_logfile_backups=10
+stdout_capture_maxbytes=1MB
-- 
GitLab