Docker - Запись вывода Python в CSV-файл в текущем рабочем каталоге - PullRequest
1 голос
/ 24 мая 2019

Я хочу узнать, как развертывать приложения с помощью Docker, и я работаю с этой простой программой на python, которая записывает некоторые данные в файл csv в текущем рабочем каталоге. Я вижу файл output.csv в текущем рабочем каталоге на моем локальном компьютере, но у меня возникают проблемы с ним, когда я запускаю образ докера.

После прочтения различных статей и сообщений о stackoverflow, монтирование пути к локальному каталогу с помощью "-v", кажется, способ добиться этого, но я не могу получить правильную команду. Я попытался создать новый каталог на моем локальном компьютере с именем «output_docker» (я также заменил параметр get.cwd () в программе на этот путь) и использовал его с параметром -v.

 docker container run -v "/Users/Desktop/output_docker" docker_image_name

Python-код (scraper.py)

import pandas as pd
import os

data = [['tom', 10], ['nick', 15], ['juli', 14]]
df = pd.DataFrame(data, columns = ['Name', 'Age'])

dirpath = os.getcwd()
print("dirpath = ", dirpath, "\n")

output_path = os.path.join(dirpath,'output.csv')
print(output_path,"\n")

df.to_csv(output_path)

DOCKERFILE

FROM python:3
ADD scraper.py /
RUN pip install pandas
CMD ["python3","./scraper.py"]

Вывод на локальный компьютер

$python3 scraper.py
   Name  Age
0   tom   10
1  nick   15
2  juli   14

dirpath =  /Users/Prathusha/Desktop/topos_docker 

/Users/Prathusha/Desktop/topos_docker/output.csv 

Вывод при запуске образа докера

$docker build -t ex_scraper .
$docker run ex_scraper
   Name  Age
0   tom   10
1  nick   15
2  juli   14
dirpath =  / 

/output.csv 

Я понимаю, что файл "output.csv" будет находиться в подкаталогах контейнера Docker, но я хочу, чтобы он был виден в текущем рабочем каталоге (или на рабочем столе), когда образ докера запускается на другом компьютере. , Буду признателен, если кто-нибудь может указать, где я иду не так.

1 Ответ

1 голос
/ 24 мая 2019

Вы можете привязать каталог вашего хоста, я бы предложил использовать WORKDIR и заменить ADD на COPY -

DOCKERFILE

FROM python:3
WORKDIR /mydata
COPY scraper.py ./
RUN pip install pandas
CMD ["python3","./scraper.py"]

Запустить его -

docker run -v ${PWD}:/data ex_scraper

Теперь вы сможете видеть CSV в вашем текущем каталоге на хосте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...