Код: Выделить всё
task_manager
Код: Выделить всё
task_manager | Traceback (most recent call last):
task_manager | File "/app/task_manager.py", line 1, in
task_manager | from flask import Flask, jsonify
task_manager | ModuleNotFoundError: No module named 'flask'
Код: Выделить всё
docker run -it --name task_manager -v D:/Projects/my_ai_assistant/task_manager:/app -w /app python:3.11-slim bash
apt-get update && apt-get install -y --no-install-recommends build-essential libssl-dev libffi-dev python3-dev bash && rm -rf /var/lib/apt/lists/*
python -m venv /app/venv
source /app/venv/bin/activate
pip install --upgrade pip
pip install --no-cache-dir -r requirements.txt
/app/venv/bin/python /app/task_manager.py
- Основная система хоста : Windows 11
- Среда:
Запуск Docker Desktop с Debian (через MS Store) в качестве WSL серверная часть - Использование PowerShell для команд
- — это корневой каталог.
Код: Выделить всё
D:/Projects/my_ai_assistant/
- Каждая служба (и gui_dashboard) имеет собственную подпапку и Dockerfile.
Код: Выделить всё
task_manager
Рабочий сервис (
Код: Выделить всё
gui_dashboard
Сервис gui_dashboard работает без проблем. Его настройка:
docker-compose.yml (соответствующий раздел):
Код: Выделить всё
gui_dashboard:
build:
context: ./gui_dashboard
container_name: gui_dashboard
working_dir: /app
volumes:
- ./gui_dashboard:/app
ports:
- "3000:3000"
restart: unless-stopped
command: ["npm", "start"]
docker- compose.yml (соответствующий раздел):
Код: Выделить всё
task_manager:
build:
context: ./task_manager
container_name: task_manager
working_dir: /app
volumes:
- ./task_manager:/app
ports:
- "5000:5000"
environment:
FLASK_RUN_HOST: "0.0.0.0"
FLASK_RUN_PORT: "5000"
restart: unless-stopped
Код: Выделить всё
# Use the official Python image
FROM python:3.11-slim
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# Set the working directory
WORKDIR /app
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libssl-dev \
libffi-dev \
python3-dev \
bash && \
rm -rf /var/lib/apt/lists/*
# Copy application files
COPY . /app/
# Create a virtual environment and install dependencies
RUN python -m venv /app/venv && \
source /app/venv/bin/activate && \
/app/venv/bin/pip install --upgrade pip && \
/app/venv/bin/pip install --no-cache-dir -r /app/requirements.txt
# Expose Flask's default port
EXPOSE 5000
# Command to run the application
CMD ["python", "/app/task_manager.py"]
- Работает выполнение вручную:
Выполнение шагов в PowerShell вручную, включая активацию виртуальной среды и запуск сценария, работает безупречно.
Монтаж Файловая система:
Я использую -v D:/Projects/my_ai_assistant/task_manager:/app, чтобы сопоставить локальный каталог для видимости и избежать копирования файлов в контейнер.
p> - Поэкспериментируйте с CMD:
Измените CMD для использования виртуального среду явно:Результаты:Код: Выделить всё
CMD ["/app/venv/bin/python", "/app/task_manager.py"]
Код: Выделить всё
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/app/venv/bin/python": stat /app/venv/bin/python: no such file or directory: unknown
Почему не удается найти модуль Flask (
Код: Выделить всё
ModuleNotFoundError
Подробнее здесь: https://stackoverflow.com/questions/792 ... en-running