Как сохранить Picture.png, сгенерированный с использованием matplotlib, от изображения Docker до хост -машины?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как сохранить Picture.png, сгенерированный с использованием matplotlib, от изображения Docker до хост -машины?

Сообщение Anonymous »

Цель программы - сохранить изображение (например, .png), сгенерированное с использованием matplotlib в Python, в каталог хоста. Ожидаемый результат для Picture.png появится в каталоге, содержащем файлы, необходимые для создания Docker-Image. < /P>

Код: Выделить всё

docker build -t bar-graph-image .< /code> успешно создает Docker-Image.
docker run bar-graph-image
запускает изображение, но я не могу найти сгенерированную картинку.png. Докер также не показывает недавно созданный контейнер. Docker run -v :. bar-graph-image приводит к ошибке, говорящей, что '.' это неверный путь к креплению, и путь должен быть абсолютным. Я не знаю, каким был бы абсолютный путь контейнера, хотя, при этом Docker, кажется, не создает контейнер вообще, чтобы найти путь. Это полное сообщение об ошибке: Docker: Ответ об ошибке из Daemon: Неверная спецификация тома: «:.»: Invalid Mount Config для типа «связывание»: Непреостя Путь монтирования должен быть абсолютным
Вот код:
dockerfile

Код: Выделить всё

# Use a slim Python base image for a smaller image size
FROM python:3.9-slim-buster

# Set the working directory inside the container
WORKDIR .

# Install system dependencies required by Matplotlib
# These might include build tools and libraries for font rendering, image formats, etc.
RUN apt-get update && \
apt-get install -y \
build-essential \
pkg-config \
libfreetype6-dev \
libpng-dev \
&& rm -rf /var/lib/apt/lists/*

# Copy your requirements.txt file and install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy your application code into the container
COPY . .

# Command to run your application (adjust as needed)
CMD ["python", "bar_graph.py"]
< /code>
requirements.txt
matplotlib
< /code>
bar_graph.py
import matplotlib.pyplot as plt

# Data for the bar graph
categories = ['Apples', 'Bananas', 'Oranges', 'Grapes']
values = [10, 15, 7, 12]

# Create the bar graph
plt.bar(categories, values)

# Add labels and title
plt.xlabel('Fruit Type')
plt.ylabel('Quantity')
plt.title('Fruit Quantities in Stock')

# Save graph as an image
plt.savefig("my_plot.png")

# Display the graph
plt.show()
Что -то вроде Docker cp container_id: /foo.txt foo.txt может быть возможно; Это требует создания нового контейнера, чтобы убедиться, что код обновлен. Я создал современный контейнер, ran docker cp container_id: /my_plot.png my_plot.png и получил ошибку, говоря, что файл не был найден в контейнере. Просто чтобы быть уверенным, показывает, что в контейнере нет файла с именем my_plot.png. Я не уверен, что Sleep Infinity предотвращает запуск файла Python или что еще может привести к тому, что Plt.SaveFig ("my_plot.png") из файла Python не создавать файл .png. Найдите файл Python и DockerFile и File TEDS.TXT в каталоге /APP. Затем вручную запустите сценарий Python python bar_graph.py . Это генерирует my_plot.png в каталоге контейнеров. Выйдите из контейнерного терминала. Скопируйте my_plot.png в хост-машине с помощью Docker CP Container-name: ./ app/my_plot.png.

Подробнее здесь: https://stackoverflow.com/questions/796 ... mage-to-th
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»