#java #python #docker #server
#java #python #docker #сервер
Вопрос:
У меня есть две вещи:
- API сервера Java, который получает файл
- Скрипт на Python, который мне нужен, чтобы иметь возможность передавать полученный файл в
Я хочу иметь возможность запускать мой скрипт Python в нескольких контейнерах Docker, которые прослушивают ввод файла, чтобы я мог запускать скрипт для нескольких файлов одновременно. Как я могу контейнеризировать свой скрипт, чтобы он работал как небольшой постоянный сервер? На данный момент у меня есть контейнер, который просто запускает скрипт, а затем немедленно завершает работу.
Итак, в двух словах, мне нужна эта структура: Файл -> Java API -> Контейнерный скрипт Python, работающий на порту
Я новичок в концепции и не понимал документацию Docker и надеялся, что какая-нибудь добрая душа сможет упростить это для меня. Спасибо
Комментарии:
1. Рассматривал возможность выполнения этого в качестве службы rest?
2. Другой вероятный вариант — установить Python и скрипт в образ Java, а затем просто запустить его как обычный подпроцесс.
Ответ №1:
Создайте один файл Dockerfile.
FROM python:3.8.2-buster
USER root
RUN mkdir -p '/script'
WORKDIR script
COPY requirements.txt /script
RUN pip3 install --upgrade pip amp;amp;
pip3 install --no-cache-dir -r requirements.txt
ENTRYPOINT [ "python", "your_script.py" ]
Затем создайте его и запустите как демон.
docker build -t myscript .
docker run -d --name script -v $(pwd):/script -p <local_port:port_inside_container> myscript
Комментарии:
1. Контейнер все равно завершится, как только
your_script.py
завершится.