求助:Docker容器无法找到本地run.sh脚本的问题排查
解决Docker容器无法找到本地run.sh脚本的问题
问题本质
容器默认只能访问自身镜像内的文件系统,你主机上的run.sh没有被挂载到容器里,所以无论怎么调整entrypoint或执行命令,容器都找不到这个脚本。
正确解决方案
需要用Docker的-v参数将本地包含run.sh的目录挂载到容器内部,同时可以用-w指定容器的工作目录,确保脚本路径正确。
命令示例1(指定工作目录)
docker run --rm -v "$(pwd):/workdir" -w /workdir blang/latex:ctanfull ./run.sh
命令示例2(在命令中切换目录)
docker run --rm -v "$(pwd):/workdir" blang/latex:ctanfull sh -c "cd /workdir && ./run.sh"
参数说明
-v "$(pwd):/workdir":将主机当前目录(run.sh所在目录)挂载到容器内的/workdir路径,让容器能访问本地文件-w /workdir:设置容器启动后的工作目录为/workdir,直接执行./run.sh即可找到脚本--rm:容器运行完成后自动删除,避免残留无用容器
额外注意
- 确保主机上的
run.sh具备可执行权限,执行chmod +x run.sh添加权限 - 如果
run.sh需要处理本地的LaTeX文件,只要这些文件和run.sh在同一目录下,挂载后容器就能正常访问
内容的提问来源于stack exchange,提问作者Matheus Diógenes Andrade
相关产品推荐
相关产品推荐

