当前位置: 首页 > 面试题库 >

为什么我的docker-entrypoint.sh无法执行?

赏航
2023-03-14
问题内容

我的ENTRYPOINT脚本无法执行并抛出 standard_init_linux.go:175: exec user process caused "no such file or directory"。为什么这样?

$ docker build -t gilani/trollo . && docker run gilani/trollo
Sending build context to Docker daemon   126 kB
Step 1 : FROM vault:latest
 ---> 1f127f53f8b5
Step 2 : MAINTAINER Amin Shah Gilani <gilani@payload.tech>
 ---> Using cache
 ---> 86b885ca1c81
Step 3 : COPY vaultConfig.json /vault/config
 ---> Using cache
 ---> 1a2be2fa3acd
Step 4 : COPY ./docker-entrypoint.sh /
 ---> Using cache
 ---> 0eb7c1c992f1
Step 5 : RUN chmod +x /docker-entrypoint.sh
 ---> Running in 251395c4790f
 ---> 46aa0fbc9637
Removing intermediate container 251395c4790f
Step 6 : ENTRYPOINT /docker-entrypoint.sh
 ---> Running in 7434f052178f
 ---> eca040859bfe
Removing intermediate container 7434f052178f
Successfully built eca040859bfe
standard_init_linux.go:175: exec user process caused "no such file or directory"

Dockerfile:

FROM vault:latest

MAINTAINER Amin Shah Gilani <gilani@payload.tech>

COPY vaultConfig.json /vault/config

COPY ./docker-entrypoint.sh /

RUN chmod +x /docker-entrypoint.sh

ENTRYPOINT ["/docker-entrypoint.sh"]

docker-entrypoint.sh:

#!/bin/bash

echo 'Hello World!'

作品

$ docker build -t gilani/trollo . && docker run gilani/trollo
Sending build context to Docker daemon   126 kB
Step 1 : FROM vault:latest
 ---> 1f127f53f8b5
Step 2 : MAINTAINER Amin Shah Gilani <gilani@payload.tech>
 ---> Using cache
 ---> 86b885ca1c81
Step 3 : COPY vaultConfig.json /vault/config
 ---> Using cache
 ---> 1a2be2fa3acd
Step 4 : ENTRYPOINT echo 'hello world'
 ---> Using cache
 ---> ef5792a1f252
Successfully built ef5792a1f252
'hello world'

Dockerfile:

FROM vault:latest

MAINTAINER Amin Shah Gilani <gilani@payload.tech>

COPY vaultConfig.json /vault/config

ENTRYPOINT ["echo", "'hello world'"]

问题答案:

vault:latest图像不包含/bin/bash您尝试用shebang调用的图像#!/bin/bash。您应该将其更改为#!/bin/sh脚本,或者将其删除。



 类似资料:
  • 我正在尝试连接两个正在运行的容器:(1)一个webapp和(2)一个使用docker Compose的mysql db。我设置了前面提到的,但我的webapp无法打开到MySQL的套接字。更具体地说,这个php@fsockopen函数抛出一个错误(第二种情况)。docker-compose配置有问题吗? 注意:idoit是webapp的名称 php案例 docker-compose.yml

  • 我在进行容器化部署过程中,配置完镜像后发现无法重启docker,一直在重启中,具体如下图所示。 尝试以下三种解决方案,都无法解决问题: 1、通过ps -ef | grep docker 并通过 kill -9 杀死相关进程。 2、重启服务器。 3、通过百度搜索相关资料。

  • 问题内容: 我正在学习Go,并且想尝试goroutine和频道。 这是我的代码: 结果如下: 我不明白为什么我的goroutine永远不会执行。没有输入“进入goroutine”,并且没有任何错误消息。 问题答案: 事实是您的goroutine开始执行,但是在执行任何操作之前就结束了,因为您的程序在打印后立即停止:goroutine的执行与主程序无关,但是将在与程序相同的位置处停止。因此,基本上,

  • 我正在尝试初始化一个运行Postgres的容器,使用 属于此数据库系统的文件将由用户“Postgres”所有。该用户还必须拥有服务器进程。 数据库集群将使用区域设置“en_us.utf8”初始化。默认的数据库编码相应地被设置为“UTF8”。默认的文本搜索配置将设置为“English”。 数据页校验和被禁用。 我已经检查了文件权限 如何确定init脚本忽略备份的原因?

  • 问题内容: 我在MacOSX上使用Docker(带有Boot2Docker)。 我可以从Docker Hub运行映像。 但是,当我尝试像这样运行自己的映像之一时: 要么 要么 我得到: 我猜它找不到在容器中执行的bash二进制文件,但是为什么呢? 基本图像是 谢谢你的帮助。 阿什莉 问题答案: 您的图片基于不带bash外壳的busybox。它的确有外壳。 所以这不起作用: 但这确实是: 由于您的入

  • 问题内容: 我有如下代码: 但是,不是在每次调用setText时在循环的每次迭代后更新文本区域,而是仅在完成所有任务运行后才更新文本。为什么会发生这种情况,我该如何解决? 问题答案: 您可能正在使用Swing线程,该线程正在等待代码执行才能更新UI。尝试为该循环使用单独的线程。