Создайте службу докеров для библиотеки Python Автоплоттера

#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» в разрешенных хостах