contêiner do docker não é capaz de gravar na máquina host

1

Se eu executar o código a seguir, posso converter o arquivo csv em um formato que eu exija.

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))

Quando executo o código no prompt de comando, ele funciona.

python covert.py

Mas se eu criar um contêiner docker, o ubuntu se recusou a gravar no disco.

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

python34 /tmp/convert.py

Eu tenho erro de falha de segmentação. Eu tentei desativar o firewall ubuntu usando

sudo ufw disable

Eu tentei remover o apparmour. Mas ainda não consigo escrever para / tmp / folder da máquina host através do container python.

Este é um problema específico do Ubuntu. Eu posso usar o mesmo alias na instância do Amazon Linux ec2.

    
por shantanuo 04.08.2016 / 14:09

1 resposta

0

Isso aconteceu porque o contêiner (pyrun) que eu estava usando não estava otimizado para lidar com arquivos grandes. Quando usei a imagem python padrão, funcionou.

docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:3 python convert.py
    
por shantanuo 06.08.2016 / 13:07