使用ENTRYPOINT时找不到文件

时间:2019-04-03 06:03:17

标签: docker dockerfile

我正在尝试使用ENTRYPOINT,每当我这样做时,我都会收到错误消息no such file or directory

Dockerfile:

FROM ubuntu:18.04

COPY . /home

COPY docker-entrypoint.sh /usr/local/bin/

RUN ln -s /usr/local/bin/docker-entrypoint.sh

WORKDIR /home
RUN chmod 777 /usr/local/bin/docker-entrypoint.sh

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["/bin/bash"]

我尝试授予其权限,尝试使用绝对路径运行它,还尝试了this,并尝试使用#!/bin/bash#!/bin/sh,最后,我仍然找不到文件错误。

我不确定是什么问题。

1 个答案:

答案 0 :(得分:0)

您提出的问题: 我不完全清楚为什么,但是找不到文件,因为您将其称为docker-entrypoint.sh而不是./docker-entrypoint.sh

您很快会问到的问题: 那不能完全解决您的问题。您已经在docker-entrypoint.sh中的/usr/local/bin副本中添加了执行特权,但是/home中还有另一个文件副本,该副本首先被发现并且没有执行特权。尝试使用时会出现权限错误。一个简单的解决方法(取决于您要执行的操作)包括修改后的入口点:

ENTRYPOINT ["/bin/bash", "docker-entrypoint.sh"]

如果您将大量使用Docker,请提供其他详细信息: 能够进入容器或图像以检查其内容非常宝贵。对于基于ubuntu的映像,请在某处写下以下行(对于其他所有Linux操作系统,将bash替换为sh

docker run -it --rm --entrypoint=bash my_image_name

这将打开该映像中的外壳,并让您在运行Dockerfile的相同环境中进行调试,并调试可能导致问题的原因。