Erreur Docker Flask Python

Résolu/Fermé
dyllan - Modifié le 3 mars 2023 à 17:11
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 3 mars 2023 à 17:14

Bonjour,

Je viens de dockeriser mon serveur web python avec la bibliothèque flask et flask_restful, j'ai crée les fichiers docker-compose.yml et dockerfile. Mais quand je lance

docker-compose up -d

la base de donnée se lance, mais pour le serveur web j'obtiens l'erreur suivante : 

Traceback (most recent call last):
  File "/app/ServeurWeb.py", line 4, in <module>
    from flask import Flask, render_template, jsonify, url_for, request
  File "/usr/local/lib/python3.9/site-packages/flask/__init__.py", line 19, in <module>
    from jinja2 import Markup, escape
ImportError: cannot import name 'Markup' from 'jinja2' (/usr/local/lib/python3.9/site-packages/jinja2/__init__.py)

Voici mes fichiers:

Dockerfile:

FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY ServeurWeb.py .
CMD [ "python", "/ServeurWeb.py" ]

Docker-compose.yml:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    environment:
      - MONGO_URI=mongodb://mongo:27017/mydb
    volumes:
      - ./app:/app
    depends_on:
      - mongo
  mongo:
    image: mongo:latest
    ports:
      - "27017:27017"

Merci par avance !

Windows / Chrome 110.0.0.0

1 réponse

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
3 mars 2023 à 17:14

Bonjour,

Ta version de jinja est trop vieille et c'est pourquoi elle ne fournit pas la classe Markup, comme l'explique cette discussion. Il faut corriger ton fichier requirements.txt pour forcer l'installation d'une version plus récente.

Bonne chance

0