我已经创建了一个docker映像 FROM ubuntu:18.04 ,我有installed ImageMagick。该程序只能转换docker存储上的文件,我不确定为什么(我在Windows上)。
我已经执行以下操作:
# Running container
docker run -it -v c:/path/to/files:/data/ myimage
# Running imagemagick on files in data
magick -density 300 /data/myinput.pdf -quality 300 /data/myoutput.png
# Error message
Error: /undefinedfilename in (/tmp/magick-86JJbaxmanPmtT)
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push
Dictionary stack:
--dict:965/1684(ro)(G)-- --dict:0/20(G)-- --dict:78/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 9.26: Unrecoverable error, exit code 1
magick: FailedToExecuteCommand `'gs' -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r300x300' '-sOutputFile=/tmp/magick-86AnWywQtp36Zc%d' '-f/tmp/magick-86UR2ooTLLxHe3' '-f/tmp/magick-86JJbaxmanPmtT'' (1) @ error/pdf.c/InvokePDFDelegate/290.
但是,如果我将文件复制到docker映像,则一切运行正常:
# Copying file to docker
mkdir data2
cp /data/myinput.pdf /data2/myinput.pdf
# Running imagemagick on file in data2
magick -density 300 /data2/myinput.pdf -quality 300 /data2/myoutput.png
有什么方法可以避免来回复制数据?您对我为什么会收到这些错误有任何建议吗?