CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Serveur/Docker/Python] Besoin d'aide pour l'implementation d'un script python dans un serveur

homagowd
homagowd
Niveau 7
20 décembre 2021 à 10:34:52

Si jamais à un moment donné je dis du n'importe quoi, je suis désolé et il ne faut pas hésiter à me reprendre :hap:

Petite introduction sur moi si vous avez envie de lire :hap:

Je vais donner pas mal d'info qui ne seront pas forcément correctes ou parfaitement juste. Je suis pas informaticien ni programmateur de base, je suis ingé dans la prod je demande donc votre clémence :hap: .
On avait un ingé avec qui nous qui faisait aussi IT mais il est malheureusement parti.
Il faut savoir que je ne sais coder qu'en python et mon niveau est moyen +.

Assez d'introduction, je passe dans le vif du sujet.

J'ai un programme python qui prends pas mal de temps à tourner et mon objectif ultime est de l'implémenter dans notre serveur. Ce script génère des pdf et des images en fonction de données qu’on peut trouver dans une base de données. Les données changent chaque jour. Le but ultime est d'automatiser le code pour qu'il se lance automatiquement chaque jour dans le seveur.

On a déjà un "truc" similaire qui est notre base de données programmé par l’ancien IT chez nous. Nous avons des fichiers txt, csv et excel générés par nos machines de prod. Un script python repère les nouveaux fichiers et les mets dans la base de données.

Pour cela a un serveur Linux (ubuntu) qu’on peut accéder avec Putty (je n’ai aucune idée de ce que c’est, je tape juste l’adresse IP du serveur et ca me connecte automatiquement dessus après avoir entré ndc et mdp de l’entreprise). C’est dans ce serveur que les scripts tournent.

Ce serveur est lié (je ne sais pas si c’est le bon terme) à un fichier contenant des codes python, c’est un fichier .git. Le fichier git est sur un deuxième serveur, lui sous windows.

J’ai juste cloné le fichier git sur mon ordi et je fais les changement quand il y en à faire (quand une nouvelle machine arrive, il faut un script qui importe les données de cette machine, ou bien quand le format d’un fichier change il faut adapter le code). Et quand je commit/push ca va dans le serveur et je me connecte la bas avec Putty et je fais sudo git pull. C’est tout ce que je sais faire avec git :noel:

Mon but est de faire quelque chose de similaire avec mon code.

Cette base de données est sur Docker, le fichier de script à son Container dessus et également la base de données (MongoDB).
Ce à quoi j’avais pensé est d’ajouter un nouveau Container et le lier à mon fichier .git. de cette manière je peux faire les modifications sur mon ordinateur les mettre dans le serveur et le lancer la bas.

Ca c'est un fichier .yml que je lance avec sudo docker-compose -f fichier.yml et


version: '3.1'

services:

  mongo:
    image: mongo
    network_mode: bridge
    restart: always
    command: --wiredTigerCacheSizeGB 1.5
    ports:
     - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: ***
      MONGO_INITDB_ROOT_PASSWORD: ***
    volumes:
        - /home/NomEntreprise/Database:/data/db
        - /home/ NomEntreprise /DockerProductionServers/Entry/:/docker-entrypoint-initdb.d/

  scripts:
    build:
      context: ../scripts
      dockerfile:  scripts.docker
    network_mode: bridge
    restart: always
    ports:
      - 6666:6666
    volumes:
        - /home/NomEntreprise/machine1:/usr/local/app/dataM1 
        - /home/NomEntreprise/machine2:/usr/local/app/dataM2 
        - /home/NomEntreprise/machine3:/usr/local/app/dataM3
        - /home/NomEntreprise/DockerProductionServers/script/pythonCode:/usr/local/app/pythonCode

Ca c'est le fichier .docker qui doit lancer le container avec les scripts a l'interieur.

# Use the official image as a parent image.
FROM ubuntu:latest 

RUN mkdir /usr/local/app
RUN mkdir /usr/local/app/pythonCode
RUN mkdir /usr/local/app/dataM1
RUN mkdir /usr/local/app/dataM2
RUN mkdir /usr/local/app/dataM3
RUN apt-get update
RUN apt-get -y upgrade
RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install python3 python3-pip python3-openpyxl python3-xlrd python3-mongoengine vim
RUN pip3 install pandas==1.1.3

# Set the working directory.
WORKDIR /usr/local/app/pythonCode
ENV MACHINE1 /usr/local/app/dataM1
ENV MACHINE2 /usr/local/app/dataM2
ENV MACHINE3 /usr/local/app/dataM3
ENV DB adresse_IP:27017

# Run the specified command within the container.
CMD [ "python3", "./StartCode.py" ]

Finalement, il y a ce fichier qui, si j'ai bien compris sert à attacher les fichiers du serv windows au serv linux

#Connect Machine1
sudo mount -t cifs "//Adress_IP/NomEntreprise/Database/ProdData/Machine1" /home/NomEntreprise/Machine1/ -o credentials=/home/NomEntreprise/.smbcredentials/smbcredentials,gid=999,uid=999,vers=1.0

#Machine2
sudo mount -t cifs "//Adress_IP/NomEntreprise/Database/ProdData/Machine2" /home/NomEntreprise/Machine2/ -o credentials=/home/NomEntreprise/.smbcredentials/smbcredentials,gid=999,uid=999,vers=1.0

#Connect Machine3
sudo mount -t cifs "//Adress_IP/NomEntreprise/Database/ProdData/Machine3" /home/NomEntreprise/WLTest/ -o credentials=/home/NomEntreprise/.smbcredentials/smbcredentials,gid=999,uid=999,vers=1.0

#Connect git 
sudo mount -t cifs "//Adress_IP/NomEntreprise/SVN" /home/NomEntreprise/SVN/ -o credentials=/home/NomEntreprise/.smbcredentials/smbcredentials

Voila je sais que ca fait beaucoup d'information, mais ma situation est que je suis bloqué maintenant, je ne veux pas faire du n'importe quoi.

Je voudrais obtenir de l'aide sur comment procéder pour faire ce que je veux.

Je pense avoir compris qu'il faut completer le fichier .yml et creer un fichier .docker.
Mais avec quoi les remplir ? :hap: Quel le port faut-il mettre ? (je dais meme pas ce qu'est un port) Je dois ajouter le fichier .git dans le fichier /SVN/ et le mount comme on a fait ? Il suffit de grandement s'inspirer de ce qui a été fait avec le script de la base de données ?

Je suis désolé de vous poser une question sans réel travail préalable derrière mais je suis bloqué ...
Toute aide serait appréciée, que ce soit des liens expliquant comment faire ou bien des pistes pour avancer.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment