Имеется проект, содержащий в корне файл blablabla.log, сам python файл, . Создан образ Docker для проекта и импортирован в Container Manager на Synology NAS, можно создать контейнер и он будет корректно работать. Проблема в том, что мну нужно, что бы файлы проекта были в папке /volume1/docker/blablabla/data, а лог файл по пути /volume1/docker/blablabla
Пробовал делать сопоставление томов через настройку контейнера в Container Manager, контейнер работает, но файлы не в нужных директориях.
mayton2019, Мне нужно, что бы на сервере файлы проекта были в папке /volume1/docker/ProjectName/app, а логи в папке /volume1/docker/ProjectName/logs. В самом проекте так же разбил на app и logs папки. Если не указывать сопоставления в контейнере, бот работает корректно. Указываю как
/volume1/docker/ProjectName/app - /app/app
/volume1/docker/ProjectName/logs - /app/logs
Если указать /volume1/docker/ProjectName/app - /app то в этой папке создается папка logs, но пустая и, соответственно, бот не работает, ошибка "python: can't open file '/app/app/main.py': [Errno 2] No such file or directory".
Нужно как-то понять, в каких папках в самом контейнере лежат файлы.
Из этой структутры нужно сделать Dockerfile, что бы на NAS я смог сопоставить папку bot с папкой /volume1/docker/projectfolder/data, а папку log с папкой на сервере /volume1/docker/projectfolder/log
GPT создал такой файл
# Используйте официальный образ Python
FROM python:3.11
# Создайте директорию для приложения
WORKDIR /app
# Копируйте файлы из папки 'bot' в текущую директорию '/app'
COPY ./bot /app
# Установка зависимостей из requirements.txt внутри папки 'bot'
RUN pip install -r /app/requirements.txt
# Создайте директорию для логов
RUN mkdir /app/log
# Указать рабочую директорию
WORKDIR /app
# Запуск вашего приложения
CMD [ "python", "main.py" ]
Но при сопоставлении
/volume1/docker/projectfolder/data —> /app
/volume1/docker/projectfolder/log —> /app/log
Контейнер крашится с ошибкой "python: can't open file '/app/main.py': [Errno 2] No such file or directory" и папка log создается по пути /volume1/docker/projectfolder/data. Если убираю сопоставление /volume1/docker/projectfolder/data —> /app, крашится с логом "ileNotFoundError: [Errno 2] No such file or directory: '/log/HandyCurrencyBot.log'", но папка с логом создается по этому пути
HandyPo, у вас ведь проблема не в python, а в docker? Ну с ним и разбирайтесь.
И - важно! - вопросы о коде ЧатЖПТ лучше задавайте самому ЧатЖПТ. Помогать можно только тем, кто сам пытается разобраться. А поправить за вас чужой кривой код - это вам на фриланс.
Алан Гибизов, так я здесь задаю вопрос, что бы разобраться. Логично же? И я не просил править чей-то код, я привел пример который не работает. После этого разбирался с коллегой, сделали другой dockerfile, но все равно не помогло.
Ваш ответ вообще не помогает, а, если не помогает, зачем комментировать?