【问题标题】:docker /bin/sh: 1: .: Can't open /pathdocker /bin/sh: 1: .: 无法打开 /path
【发布时间】:2019-05-14 09:03:11
【问题描述】:

我在home/demo/projectA 下有一个sbt 项目projectA 我的Dockerfile 驻留在/home/demo/ 中,出于某种原因我不希望它在projectA 中 所以层次结构看起来像这样

主页/演示

  • Dockerfile
  • 项目A

我在这里尝试在映像构建过程中运行sbt 命令这是我的 Dockerfile 的内容

FROM hseeberger/scala-sbt:11.0.2_2.12.8_1.2.8 as stripecommon

MAINTAINER sara <sarawaheed3191@gmail.com>

WORKDIR /aa


RUN \
  . /home/demo/projectA sbt

我在构建图像时遇到此错误

:~/home/demo$ docker build -t testapp .
Sending build context to Docker daemon  1.297GB
Step 1/4 : FROM hseeberger/scala-sbt:11.0.2_2.12.8_1.2.8 as stripecommon
 ---> 349a7e4f4029
Step 2/4 : MAINTAINER sara <sarawaheed3191@gmail.com>
 ---> Using cache
 ---> 8603662d3730
Step 3/4 : WORKDIR /aa
 ---> Using cache
 ---> f07ec5bb4d34
Step 4/4 : RUN   . /home/demo/projectA sbt
 ---> Running in 7509ee45f622
/bin/sh: 1: .: Can't open /home/demo/projectA
The command '/bin/sh -c . /home/demo/projectA sbt' returned a non-zero code: 2

什么是正确的方法,我也是 docker 帮助的初学者,将不胜感激

【问题讨论】:

  • 我不明白这行RUN . /home/demo/projectA sbt。为什么不直接执行RUN /home/demo/projectA sbt。我想 projectA 是二进制文件,而 sbt 是参数,不是吗?
  • 它说 /bin/sh: 1: /home/demo/projectA: not found 命令 '/bin/sh -c /home/demo/projectA sbt.'返回一个非零代码:127 这里 projectA 是一个 sbt 项目,'sbt' 是我作为参数给出的命令
  • 你在哪里创建/home/demo/projectA 在你的图像中?
  • 不鼓励交叉发布到多个 SE 站点。请为您的问题找到最合适的网站并在那里发布。参考:devops.stackexchange.com/q/8131/7730

标签: docker dockerfile


【解决方案1】:

您需要确保 projectA 存在于容器中。所以为此你要么从 github 选择代码,要么使用 COPY 或 ADD 命令复制它。之后,您可以使用 sbt 构建它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 2017-02-07
    • 2021-10-20
    • 2019-09-11
    • 1970-01-01
    • 2015-12-18
    • 2020-07-28
    相关资源
    最近更新 更多