Dan*_*wes 8 bash ubuntu docker
尝试 bash 进入容器并执行 for 循环,该循环仅执行一个命令(顺便说一下,该命令适用于单个文件)。它甚至似乎呼应了正确的命令......我忘记了什么无题
for pdf in *.pdf ;
do
docker run --rm -v "$(pwd):/home/docker" leofcardoso/pdf2pdfocr -g jpeg2000 -v -i '\'''$pdf''\''';
done
Run Code Online (Sandbox Code Playgroud)
小智 14
您可以使用以下命令在容器中进行 bash:
查看 docker 容器 ID
docker container ls
Run Code Online (Sandbox Code Playgroud)
在容器内输入 bash。
docker exec -it CONTAINER_ID bash
Run Code Online (Sandbox Code Playgroud)
首先,您没有tty在 docker run 命令中进行分配,并且 docker 容器在转换文件后很快就会终止。这是容器的主要流程
#!/bin/bash
cd /home/docker
exec pdf2pdfocr.py "$@"
Run Code Online (Sandbox Code Playgroud)
所以,在这种情况下,这个容器的寿命就是exec pdf2pdfocr.py "$@"命令的寿命。
正如@Fra 所提到的,覆盖入口点并手动运行命令。
docker run --rm -v "$(pwd):/home/docker" -it --entrypoint /bin/bash leofcardoso/pdf2pdfocr
Run Code Online (Sandbox Code Playgroud)
但在上面的运行命令中,docker容器不会做任何事情,只会分配tty并且bash将打开。因此,您可以使用 docker exec 转换容器内的文件,然后运行pdf2pdfocr.py -g jpeg2000 -v -i mypdf.pdf
因此,如果您想使用覆盖入口点运行,那么您可以尝试。
docker run -it --rm --entrypoint /bin/bash -v "$(pwd):/home/docker" leofcardoso/pdf2pdfocr -c "pdf2pdfocr.py -g jpeg2000 -v -i mypdf.pdf"
Run Code Online (Sandbox Code Playgroud)
或使用 bash 脚本
#!/bin/bash
for pdf in *.pdf ;
do
echo "converting $pdf"
docker run -it --rm --entrypoint /bin/bash -v "$(pwd):/home/docker" leofcardoso/pdf2pdfocr -c "pdf2pdfocr.py -g jpeg2000 -v -i $pdf"
done
Run Code Online (Sandbox Code Playgroud)
但完成转换后容器就会消亡。
| 归档时间: |
|
| 查看次数: |
6736 次 |
| 最近记录: |