输入:
- 安装了Docker Toolbox的Windows机器。
- 有一个shell脚本文件baz.sh
,它调用py2dsc-deb
。
问题: py2dsc-deb
在Windows上不可用。
据我所知,我可以从Docker存储库中提取一些Linux发行版图像,创建一个容器,然后执行shell脚本文件,它将运行py2dsc-deb
并完成其工作。
我拉了:
debian - stretch-slim - 3ad21 - 3 weeks ago - 55.3MB
现在
如何使用debian
运行我的脚本,例如:docker exec mycontainer /path/to/test.sh
?
正在运行docker --rm debian:stretch-slim
无效。是不是要在docker-machine ip
运行Debian发行版?
我尝试使用docker run -it debian:stretch-slim /bin/bash
保持容器,然后使用docker exec 1ef5b ./build.sh
运行脚本,但获取
$ docker exec 745 ./build.sh rpc错误:code = 2 desc = oci运行时错误:exec失败:container_linux.go:247:启动容器进程导致“exec:\”./ build.sh \“:stat ./build.sh:没有这样的文件或目录“
这是否意味着我无法运行外部脚本并且必须始终在Docker中传递它?
答案 0 :(得分:1)
您可以通过键入
在容器内执行bash命令docker exec -ti -u `username` `container_name` bash -c "cd /path/to/ && ./test.sh"
假设您的容器名称为test_buildbox
,您是root
并且您的脚本停留在/bin/test.sh
内您可以通过键入
docker exec -ti -u root test_buildbox bash -c "cd /bin/ && ./test.sh
答案 1 :(得分:0)
在Windows上构建Docker映像时,请检查.sh
脚本(<LF>
)中的行尾是否正确。