我正在尝试使用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
,最后,我仍然找不到文件错误。
我不确定是什么问题。
答案 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的相同环境中进行调试,并调试可能导致问题的原因。