Parcourir la source

primo commit:
la cartella di partenza si chiama projects
i file caricati sono gia' operativi

mauro il y a 4 mois
commit
841671639f

+ 14 - 0
README.md

@@ -0,0 +1,14 @@
+questo repository contiene tutti i file che servono a generare il costrutto docker della macchina SERVICE su google
+
+base: macchina debian di partenza - stable
+python: installazione base con python3 e componenti per generare i diversi ambienti operativi
+django4 e django5: contengono rispettivamente le versioni django 4.2.8 le l'ultima disponibile della 5 (5.2.x)
+nginx.d4 e d5: a loro volta servono a distribuire i componenti grafici che compongono le due dashboard.
+mosquitto: demone mosquitto mqtt
+mosquitto.d4: i client che ricevono le attivita' mqtt e gestiscono mail e aggiornamenti db
+
+manca ancora:
+mosquitto.d5: stesso del d4 ma usa le librerie di django5
+bpconverter 
+gd
+

+ 106 - 0
docker-compose.yml

@@ -0,0 +1,106 @@
+services:
+  start:
+    image: start
+    build:
+      context: python
+      dockerfile: start
+
+  python:
+    image: python
+    build:
+      context: python
+      dockerfile: python
+    depends_on:
+      - start 
+
+  django4:
+    image: django4
+    build:
+      context: python
+      dockerfile: django4
+    depends_on:
+      - python
+    ports: 
+      - 8100:8100
+    volumes:
+      - /home/data:/home/data
+    environment:
+      - PORT=8100
+      - V=4
+    entrypoint: ['/bin/bash','/root/run.sh']
+    restart: unless-stopped
+
+  nginx.d4:
+    image: nginx.d4
+    build:
+      context: nginx.d4
+      dockerfile: nginx.d4
+    ports:
+      - 8105:80
+    volumes:
+      - /home/data:/home/data
+      - /home/data/dashboard4_nginx:/etc/nginx
+    entrypoint: ['/bin/bash','/root/run.sh']
+    restart: unless-stopped
+    depends_on:
+      - start 
+
+  django5:
+    image: django5
+    build:
+      context: python
+      dockerfile: django5
+    depends_on:
+      - python
+    ports: 
+      - 8110:8110
+    volumes:
+      - /home/data:/home/data
+    environment:
+      - PORT=8110
+      - V=5
+    entrypoint: ['/bin/bash','/root/run.sh']
+    restart: unless-stopped
+
+  nginx.d5:
+    image: nginx.d5
+    build:
+      context: nginx.d5
+      dockerfile: nginx.d5
+    ports:
+      - 8115:80
+    volumes:
+      - /home/data:/home/data
+      - /home/data/dashboard5_nginx:/etc/nginx
+    entrypoint: ['/bin/bash','/root/run.sh']
+    restart: unless-stopped
+    depends_on:
+      - start 
+
+  mosquitto:
+    image: mosquitto
+    build:
+      context: mosquitto
+      dockerfile: mosquitto
+    ports:
+      - 1881:1881
+    volumes:
+      - /home/data/server_mosquitto:/etc/mosquitto
+    entrypoint: ['/bin/bash','/root/run.sh']
+    restart: unless-stopped
+    depends_on:
+      - start 
+
+  mosquitto.d4:
+    image: mosquitto.d4
+    build:
+      context: mosquitto.d4
+      dockerfile: mosquitto.d4
+    volumes:
+      - /home/data:/home/data
+      - /home/data/mosquitto.d4:/home/data/mosquitto.d4
+    entrypoint: ['/bin/bash','/root/run.sh']
+    restart: unless-stopped
+    depends_on:
+      - django4
+

+ 5 - 0
mosquitto.d4/loop.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+#
+echo "Running ...."
+touch /tmp/nulfile.txt
+tail -f /tmp/nulfile.txt

+ 8 - 0
mosquitto.d4/mosquitto.d4

@@ -0,0 +1,8 @@
+from python as mosquitto.d4
+run . ./home/runtime/bin/activate && pip install django==4.2.8
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
+copy run.sh /root/run.sh
+copy loop.sh /root/loop.sh
+run chmod a+x /root/run.sh
+run chmod a+x /root/loop.sh
+

+ 4 - 0
mosquitto.d4/run.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+. /home/runtime/bin/activate
+cd /home/data/mosquitto.d4
+ python answer.py

+ 5 - 0
mosquitto.d5/loop.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+#
+echo "Running ...."
+touch /tmp/nulfile.txt
+tail -f /tmp/nulfile.txt

+ 8 - 0
mosquitto.d5/mosquitto.d5

@@ -0,0 +1,8 @@
+from python as mosquitto.d4
+run . ./home/runtime/bin/activate && pip install django==4.2.8
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
+copy run.sh /root/run.sh
+copy loop.sh /root/loop.sh
+run chmod a+x /root/run.sh
+run chmod a+x /root/loop.sh
+

+ 4 - 0
mosquitto.d5/run.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+. /home/runtime/bin/activate
+cd /home/data/mosquitto.d5
+ python answer.py

+ 5 - 0
mosquitto/loop.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+#
+echo "Running ...."
+touch /tmp/nulfile.txt
+tail -f /tmp/nulfile.txt

+ 10 - 0
mosquitto/mosquitto

@@ -0,0 +1,10 @@
+from start as nginx
+run apt install mosquitto -y
+run mkdir -p /var/run/mosquitto
+run chown mosquitto:mosquitto /var/run/mosquitto
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
+copy run.sh /root/run.sh
+copy loop.sh /root/loop.sh
+run chmod a+x /root/run.sh
+run chmod a+x /root/loop.sh
+

+ 8 - 0
mosquitto/run.sh

@@ -0,0 +1,8 @@
+#!/bin/bash
+#
+mkdir -p /var/run/mosquitto
+chown mosquitto:mosquitto /var/run/mosquitto
+mosquitto -v -c /etc/mosquitto/mosquitto.conf
+touch /tmp/mosquitto.txt
+tail -f /tmp/mosquitto.txt
+

+ 5 - 0
nginx.d4/loop.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+#
+echo "Running ...."
+touch /tmp/nulfile.txt
+tail -f /tmp/nulfile.txt

+ 7 - 0
nginx.d4/nginx.d4

@@ -0,0 +1,7 @@
+from start as nginx.d4
+run apt install nginx-full -y
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
+copy run.sh /root/run.sh
+copy loop.sh /root/loop.sh
+run chmod a+x /root/run.sh
+run chmod a+x /root/loop.sh

+ 5 - 0
nginx.d4/run.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+#
+/etc/init.d/nginx start
+touch /tmp/nginx.txt
+tail -f /tmp/nginx.txt

+ 5 - 0
nginx.d5/loop.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+#
+echo "Running ...."
+touch /tmp/nulfile.txt
+tail -f /tmp/nulfile.txt

+ 7 - 0
nginx.d5/nginx.d5

@@ -0,0 +1,7 @@
+from start as nginx.d5
+run apt install nginx-full -y
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
+copy run.sh /root/run.sh
+copy loop.sh /root/loop.sh
+run chmod a+x /root/run.sh
+run chmod a+x /root/loop.sh

+ 5 - 0
nginx.d5/run.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+#
+/etc/init.d/nginx start
+touch /tmp/nginx.txt
+tail -f /tmp/nginx.txt

+ 3 - 0
python/django4

@@ -0,0 +1,3 @@
+from python as django4
+run . ./home/runtime/bin/activate && pip install django==4.2.8
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime

+ 4 - 0
python/django5

@@ -0,0 +1,4 @@
+from python as django5
+run . ./home/runtime/bin/activate && pip install django
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
+

+ 5 - 0
python/loop.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+#
+echo "Running ...."
+touch /tmp/nulfile.txt
+tail -f /tmp/nulfile.txt

+ 10 - 0
python/python

@@ -0,0 +1,10 @@
+from start as python
+run apt install python3-pip python3-venv python-is-python3 -y
+run apt install python3-dev default-libmysqlclient-dev build-essential pkg-config -y
+run cd /home && python -mvenv runtime
+run . /home/runtime/bin/activate && pip install mysqlclient && pip install paho-mqtt
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
+copy run.sh /root/run.sh
+copy loop.sh /root/loop.sh
+run chmod a+x /root/run.sh
+run chmod a+x /root/loop.sh

+ 9 - 0
python/run.sh

@@ -0,0 +1,9 @@
+#!/bin/bash
+
+echo "PORTA indicata ${PORT}"
+
+cd /home/data/dashboard${V}
+. /home/runtime/bin/activate
+
+python manage.py runserver 0.0.0.0:${PORT}
+

+ 5 - 0
python/start

@@ -0,0 +1,5 @@
+from debian:stable as start
+run echo "Creazione immagine di base"
+run apt update && apt dist-upgrade -y
+run apt install nfs-common -y
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime

+ 17 - 0
python/start.ori

@@ -0,0 +1,17 @@
+from debian:stable as base_image
+run echo "Creazione immagine di base"
+run apt update && apt dist-upgrade -y
+run apt install nfs-common -y
+run ln -sf /usr/share/zoneinfo/Europe/Rome /etc/localtime
+
+from base_image as python_ready
+run apt install python3-pip python3-venv python-is-python3 -y
+run cd /home && python -mvenv runtime
+run ls -al /home
+
+from python_ready as django_428
+run . ./home/runtime/bin/activate && pip install django==4.2.8 && pip install configparser && pip install pymysqldb
+
+from python_ready as django_latest
+run . ./home/runtime/bin/activate && pip install django && pip install configparser && pip install pymysqldb
+