python - Docker python输出csv文件
问题描述
我有一个脚本 python,它应该输出一个文件 csv. 我试图将此文件放在当前工作目录中,但没有成功。
这是我的 Dockerfile
FROM python:3.6.4
RUN apt-get update && apt-get install -y libaio1 wget unzip
WORKDIR /opt/oracle
RUN wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-
basiclite-linuxx64.zip && \ unzip instantclient-basiclite-linuxx64.zip && rm
-f instantclient-basiclite-linuxx64.zip && \ cd /opt/oracle/instantclient*
&& rm -f jdbc occi mysql *README jar uidrvci genezi adrci && \ echo
/opt/oracle/instantclient > /etc/ld.so.conf.d/oracle-instantclient.conf &&
ldconfig
RUN pip install --upgrade pip
COPY . /app
WORKDIR /app
RUN pip install --upgrade pip
RUN pip install pystan
RUN apt-get -y update && python3 -m pip install cx_Oracle --upgrade
RUN pip install -r requirements.txt
CMD [ "python", "Main.py" ]
并使用以下命令运行容器
docker container run -v $pwd:/home/learn/rstudio_script/output image
解决方案
您的脚本Main.py
可能没有尝试写入/home/learn/rstudio_script/output
. 容器中的工作目录是/app
因为WORKDIR
Dockerfile 中的最后一个指令。您可以在运行时覆盖它,--workdir
但随后CMD
也必须更改。
一种解决方案是让您的脚本写入文件/output/
,然后像这样运行它:
docker container run -v $PWD:/output/ image
推荐阅读
- javascript - 如何对 Stripe API 结果进行分页?
- python - PyGame Blit 的位置无效
- javascript - 同一页面中的 PHP 函数
- angular - Angular 5如何预加载和缩小styles.scss
- apache-spark - Spark 2.4.0 functions.udf 不适用于集合
- c# - 无法从 DataTable C# 返回行
- python-3.x - 如何使用 py2neo v4 和 Neo4j 合并节点和关系
- c# - 为什么 double.MaxValue 输出的最大长度与 double max = 1.79769313486232E307 不同;
- javascript - Laravel 与 RiotJS 的混合
- mysql - 如何为选择语句设置默认值