mirror of
https://git.roussel.pro/telecom-paris/pact.git
synced 2026-02-09 02:20:17 +01:00
container docker pour le backend python pret
This commit is contained in:
15
.vscode/launch.json
vendored
15
.vscode/launch.json
vendored
@@ -10,6 +10,21 @@
|
|||||||
"package": "${workspaceFolder}/code/reviews_api/package.json",
|
"package": "${workspaceFolder}/code/reviews_api/package.json",
|
||||||
"localRoot": "${workspaceFolder}/code/reviews_api"
|
"localRoot": "${workspaceFolder}/code/reviews_api"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Docker: Python - General",
|
||||||
|
"type": "docker",
|
||||||
|
"request": "launch",
|
||||||
|
"preLaunchTask": "docker-run: debug",
|
||||||
|
"python": {
|
||||||
|
"pathMappings": [
|
||||||
|
{
|
||||||
|
"localRoot": "${workspaceFolder}",
|
||||||
|
"remoteRoot": "/app"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"projectType": "general"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
23
README.md
23
README.md
@@ -1,23 +0,0 @@
|
|||||||
Ceci est votre dépôt pour le projet PACT.
|
|
||||||
|
|
||||||
Vous **DEVEZ** modifier ce fichier (`README.md`) et créer tous les
|
|
||||||
répertoires et fichiers dont vous aurez besoin pour votre projet.
|
|
||||||
|
|
||||||
# Important, le rapport d'avancement
|
|
||||||
|
|
||||||
Le répertoire `rapport` contient un squelette pour votre rapporte d'avancement.
|
|
||||||
Ce répertoire **ne doit pas être renommé** ni le fichier `README.adoc` qu'il contient.
|
|
||||||
Le fichier `README.adoc` est le point d'entrée du rapport.
|
|
||||||
|
|
||||||
Il est rédigé en utilisant le langage [**AsciiDoc**](http://asciidoc.org/).
|
|
||||||
La syntaxe est supportée par GitLab qui le formatera correctement dans l'interface Web.
|
|
||||||
|
|
||||||
Le document final sera généré en utilisant l'outil [Asciidoctor](http://asciidoctor.org/) qui supporte les mêmes extensions que GitLab (pour les équations par exemple).
|
|
||||||
Un résumé de la syntaxe supportée est accessible [ici](http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/).
|
|
||||||
|
|
||||||
Vous pouvez éditer les différents fichiers en utilisant *votre éditeur de texte favori*.
|
|
||||||
Si vous n'en avez pas, vous pouvez, par exemple utiliser:
|
|
||||||
|
|
||||||
- [**Visual Studio Code**](https://code.visualstudio.com/) avec l'extension [AsciiDoc](https://marketplace.visualstudio.com/items?itemName=asciidoctor.asciidoctor-vscode) qui ajoute coloration syntaxique et rendu en temps réel.
|
|
||||||
- Ou bien sûr votre éditeur de text préféré **Sublim Text**, **Vim**, **Emacs**,…
|
|
||||||
- Une extension pour navigateur Web est aussi disponible pour visualiser le résultat ([**ici**](https://github.com/asciidoctor/asciidoctor-browser-extension)).
|
|
||||||
27
code/backend/.dockerignore
Normal file
27
code/backend/.dockerignore
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
**/__pycache__
|
||||||
|
**/.venv
|
||||||
|
**/.classpath
|
||||||
|
**/.dockerignore
|
||||||
|
**/.env
|
||||||
|
**/.git
|
||||||
|
**/.gitignore
|
||||||
|
**/.project
|
||||||
|
**/.settings
|
||||||
|
**/.toolstarget
|
||||||
|
**/.vs
|
||||||
|
**/.vscode
|
||||||
|
**/*.*proj.user
|
||||||
|
**/*.dbmdl
|
||||||
|
**/*.jfm
|
||||||
|
**/bin
|
||||||
|
**/charts
|
||||||
|
**/docker-compose*
|
||||||
|
**/compose*
|
||||||
|
**/Dockerfile*
|
||||||
|
**/node_modules
|
||||||
|
**/npm-debug.log
|
||||||
|
**/obj
|
||||||
|
**/secrets.dev.yaml
|
||||||
|
**/values.dev.yaml
|
||||||
|
LICENSE
|
||||||
|
README.md
|
||||||
18
code/backend/Dockerfile
Normal file
18
code/backend/Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# For more information, please refer to https://aka.ms/vscode-docker-python
|
||||||
|
FROM python:3.8-slim
|
||||||
|
|
||||||
|
# Keeps Python from generating .pyc files in the container
|
||||||
|
ENV PYTHONDONTWRITEBYTECODE=1
|
||||||
|
|
||||||
|
# Turns off buffering for easier container logging
|
||||||
|
ENV PYTHONUNBUFFERED=1
|
||||||
|
|
||||||
|
# Install pip requirements
|
||||||
|
COPY requirements.txt .
|
||||||
|
RUN python -m pip install -r requirements.txt
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
|
||||||
|
CMD ["python", "main.py"]
|
||||||
@@ -1,11 +1,10 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import json
|
import json
|
||||||
import websockets
|
import websockets
|
||||||
import numpy as np
|
|
||||||
import random
|
import random
|
||||||
|
|
||||||
class WebsocketServer:
|
class WebsocketServer:
|
||||||
def __init__(self,getEffects,port=5000,host="localhost") -> None:
|
def __init__(self,getEffects,port=5000,host="backend") -> None:
|
||||||
self.host = host
|
self.host = host
|
||||||
self.port = port
|
self.port = port
|
||||||
self.getEffects = getEffects
|
self.getEffects = getEffects
|
||||||
1
code/backend/requirements.txt
Normal file
1
code/backend/requirements.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
websockets
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
version: "3.9"
|
version: "3.9"
|
||||||
services:
|
services:
|
||||||
|
|
||||||
|
#Base de donnée mysql de la borne sur laquelle est stockée tous les avis et les stats
|
||||||
db:
|
db:
|
||||||
image: mysql:latest
|
image: mysql:latest
|
||||||
container_name: db
|
container_name: db
|
||||||
@@ -17,7 +19,8 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: telereview
|
MYSQL_ROOT_PASSWORD: telereview
|
||||||
MYSQL_DATABASE: telereview
|
MYSQL_DATABASE: telereview
|
||||||
|
|
||||||
|
#Interface d'aministration pour la bdd
|
||||||
phpmyadmin:
|
phpmyadmin:
|
||||||
image: phpmyadmin:latest
|
image: phpmyadmin:latest
|
||||||
restart: always
|
restart: always
|
||||||
@@ -31,7 +34,8 @@ services:
|
|||||||
PMA_PASSWORD: telereview
|
PMA_PASSWORD: telereview
|
||||||
ports:
|
ports:
|
||||||
- 8000:80
|
- 8000:80
|
||||||
|
|
||||||
|
#API de gestion des avis, permet d'ajouter ou de récuperer des avis ou les stats sur les avis par des requêtes HTTP
|
||||||
reviews_api:
|
reviews_api:
|
||||||
container_name: reviews_api
|
container_name: reviews_api
|
||||||
ports:
|
ports:
|
||||||
@@ -48,12 +52,24 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
build: ./reviews_api
|
build: ./reviews_api
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
|
#Serveur web de l'interface de la borne
|
||||||
interface_borne:
|
interface_borne:
|
||||||
image: httpd:latest
|
image: httpd:latest
|
||||||
volumes:
|
volumes:
|
||||||
- ./interface_borne:/usr/local/apache2/htdocs/
|
- ./interface_borne:/usr/local/apache2/htdocs/
|
||||||
container_name: interface_borne
|
container_name: interface_borne
|
||||||
ports:
|
ports:
|
||||||
- 80:80
|
- 8888:80
|
||||||
|
|
||||||
|
#Backend de la borne : scripts pythons de reconaissances video et audio
|
||||||
|
#Envoient les infos a l'interface de la borne par websocket pour mettre a jour l'interface rapidement
|
||||||
|
#Met a jour les avis en faisant des requêtes a l'API
|
||||||
|
backend:
|
||||||
|
build: ./backend
|
||||||
|
container_name: backend
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
#Ce container est le serveur websocker et le client est l'interface de la borne qui tourne dans le navigateur
|
||||||
|
- 5000:5000
|
||||||
|
|
||||||
@@ -3,4 +3,5 @@ let client
|
|||||||
window.addEventListener("load", () => {
|
window.addEventListener("load", () => {
|
||||||
cameraEditor = new CameraEditor(document.getElementById("canvas"));
|
cameraEditor = new CameraEditor(document.getElementById("canvas"));
|
||||||
client = new WebsocketClient((effects) => { cameraEditor.setEffects(effects); });
|
client = new WebsocketClient((effects) => { cameraEditor.setEffects(effects); });
|
||||||
|
cameraEditor._frame();
|
||||||
}, false);
|
}, false);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ WORKDIR /usr/src/app
|
|||||||
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
|
COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"]
|
||||||
RUN npm install --production --silent && mv node_modules ../
|
RUN npm install --production --silent && mv node_modules ../
|
||||||
COPY . .
|
COPY . .
|
||||||
EXPOSE 8080
|
|
||||||
RUN chown -R node /usr/src/app
|
RUN chown -R node /usr/src/app
|
||||||
USER node
|
USER node
|
||||||
CMD ["node", "index.js"]
|
CMD ["node", "index.js"]
|
||||||
|
|||||||
Reference in New Issue
Block a user