Мне нужно обернуть мой парсер, а именно файл `avito_parser_cli.py` из репозитория
https://github.com/denis5417/avito_parser в Docker контейнер.
Я создал `Dockerfile`:
FROM python:3
ADD avito_parser.py avito_parser_cli.py requirements.txt /
RUN python3 -m venv env
CMD ['source', 'env/bin/activate']
RUN pip3 install -r requirements.txt
ENTRYPOINT ["python3", "avito_parser_cli.py"]
Я создаю виртуальное окружение и в него устанавливаю нужные мне зависимости. Я использую `ENTRYPOINT` вместо `CMD`, чтобы принимать аргументы командной строки при запуске.
Затем я собрал образ `sudo docker build -t avito_parser_cli .`
Для тестирования я перешел в другую папку и запустил образ `docker run avito_parser_cli "трактор мтз" -t -m 300000 -s 'date' -a`
Все аргументы распарсились правильно и скрипт выдал то что ожидалось. Но также он должен был записать результат в файл `output.csv`, никаких ошибок он не выдал, но файл я нигде не нашел. При запуске скрипта без Docker скрипт успешно создавал файл и записывал в него.
У меня следующие вопросы:
1. Правильно ли я оформил `Dockerfile` и собрал образ? Принято ли создавать виртуальное окружение внутри образа и в нем устанавливать все зависимости, или нужно делать как-то иначе (например, не создавать окружение, а сразу устанавливать все зависимости)?
2. Куда пропал мой `output.csv`. Как сделать так, чтобы он создавался в той же директории, в которой запускается образ и принято ли так делать?
3. Как обычно распространяются такие образы? Достаточно ли просто оставить `Dockerfile` в репозитории с проектом?