#python #django #docker #django-templates #dockerfile
Вопрос:
Я хочу создать сервис docker для автоплоттера и хочу показать его результаты , iframe
которые я позже смогу показать в своих шаблонах django ? Возможно ли это, если да, пожалуйста, нужны рекомендации. Спасибо
Комментарии:
1. Автоплоттер, похоже, является графическим инструментом. Как вы представляете себе интерфейс сервиса, который вы создаете, чтобы выглядеть? И как вы представляете себе передачу данных из сервиса в автоплоттер?
2. Я предполагаю, что у меня есть данные в postgresql, и я создам фрейм данных (df), подобный этому —> данные= Сотрудник.объекты.все().значения() df= pd.Фрейм данных(данные) и преобразую этот фрейм данных в iframe, который затем будет взаимодействовать с моей службой, запущенной в docker. Я также думаю, что если можно преобразовать фрейм данных в df.to_html (), то будет что-то, что может преобразовать вывод графического интерфейса в iframe, который позже может быть показан через службу docker. Далее ваше руководство требуется, если это действительно сработает?
Ответ №1:
вы должны создать файл Dockerimage в соответствии с вашими потребностями, а затем запустить его с помощью файла docker-compose.yml или команды запуска docker .Теперь я приведу пример файла Dockerfile и файла compose, который я использую для своих проектов на python, но вам нужно изменить некоторые значения, такие как порт или… как ваши потребности. Вот файл Dockerfile:
# base image
FROM python:3.8.6
RUN apt-get update
amp;amp; apt-get install -y --no-install-recommends
postgresql-client
amp;amp; rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . ./
# For Django - replace given ip and port
EXPOSE 8000
CMD ["python", "manage.py", "makemigrations"]
CMD ["python", "manage.py", "migrate"]
CMD ["python", "manage.py", "makemigrations", "app_name"]
CMD ["python", "manage.py", "migrate", "app_name"]
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
докер-compose.yml:
version: '3.8'
x-common-config:
amp;common-config
environment:
TZ: Asia/Tehran
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "10"
services:
app_name:
image: image_name:latest
hostname: hostname
container_name: app_name
ports:
- "8000:8000"
networks:
- network_name
<< : *common-config
networks:
axaz:
name: axaz
если вы используете платформу django, обязательно измените DEBUG на False и установите «0.0.0.0» в разрешенных хостах