2016-08-04 55 views
0

如果我运行下面的代码,我可以将csv文件转换为我需要的格式。不能在主机上写入的码头容器

import csv 
import json 

csvfile = open('/tmp/head.csv', 'r') 
jsonfile = open('/tmp/file.json', 'w') 

fieldnames = ("user","messageid","destination","col1", "col2", "code1","code2", "mydate", "status") 

reader = csv.DictReader(csvfile, fieldnames) 

for row in reader: 
    jsonfile.write(json.dumps(row)) 

当我在命令提示符下运行代码时,它工作。

python covert.py 

但是,如果我创建码头集装箱,ubuntu拒绝写入磁盘。

alias python34='docker run -i -v "$(pwd)":/tmp/ --rm shantanuo/pyrun:3.4 python "[email protected]"' 

python34 /tmp/convert.py 

我得到了段错误错误。我尝试禁用ubuntu防火墙使用

sudo ufw disable 

我试图删除apparmour。但我仍然无法通过python容器写入主机的/ tmp /文件夹。

这是Ubuntu特有的问题。我可以在Amazon Linux ec2实例上使用相同的别名。

回答

0

这是因为我使用的容器(pyrun)没有优化来处理大文件。当我使用默认的Python图像时,它工作。

docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:3 python convert.py 
相关问题