【问题标题】:docker run immediately returns and does not show output of script.shdocker run 立即返回并且不显示 script.sh 的输出
【发布时间】:2021-06-12 19:06:26
【问题描述】:

我有一个简单的echo.sh 文件,其中包含:echo "hello"(有或没有#!/bin/bash 都会给出相同的错误)

即使容器中的这个位置有echo.sh,此命令也会立即返回:

docker run --rm -v $SCRIPTPATH/../:/home/project my_container --entrypoint bash /home/project/echo.sh

没有输出,应该是hello

我做到了

docker run --rm -v $SCRIPTPATH/../:/home/project -it my_container /bin/bash

 ./echo.sh

它有效。

这就是我的 Dockerfile 的结束方式:

WORKDIR /home/project
ENTRYPOINT "/bin/bash"

我做错了什么?

我发现很多地方都在谈论按照我的方式运行脚本

【问题讨论】:

  • 文件权限或文件位置可能有问题。运行docker run ... /bin/bash,然后在容器内运行pwd; ls -lh查看路径和文件

标签: bash docker containers


【解决方案1】:

运行映像时,--entrypoint 需要位于映像名称之前。

docker run --rm -v $SCRIPTPATH/../:/home/project --entrypoint bash my_container /home/project/echo.sh

【讨论】:

  • 或者只是用 exec 删除入口点选项
  • 为什么我的命令只是返回?那么它的作用是什么?
  • 您的命令只是返回,因为ENTRYPOINT "/bin/bash" 收到空输入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
  • 2021-09-29
  • 1970-01-01
  • 2018-02-12
  • 2013-04-20
  • 2014-07-02
  • 1970-01-01
相关资源
最近更新 更多