Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 未找到Docker entrypoint.sh_Windows_Amazon Web Services_Docker_Dockerfile - Fatal编程技术网

Windows 未找到Docker entrypoint.sh

Windows 未找到Docker entrypoint.sh,windows,amazon-web-services,docker,dockerfile,Windows,Amazon Web Services,Docker,Dockerfile,按照说明将Duo CloudMapper部署到AWS环境并获取错误 Docker文件 FROM python:3.7-slim as cloudmapper LABEL maintainer="https://github.com/0xdabbad00/" LABEL Project="https://github.com/duo-labs/cloudmapper" WORKDIR /opt/cloudmapper ENV AWS_DEFAULT_RE

按照说明将Duo CloudMapper部署到AWS环境并获取错误

Docker文件

FROM python:3.7-slim as cloudmapper

LABEL maintainer="https://github.com/0xdabbad00/"
LABEL Project="https://github.com/duo-labs/cloudmapper"

WORKDIR /opt/cloudmapper
ENV AWS_DEFAULT_REGION=us-east-1 

RUN apt-get update -y
RUN apt-get install -y build-essential autoconf automake libtool python3.7-dev python3-tk jq awscli

COPY cloudmapper/. /opt/cloudmapper
COPY entrypoint.sh /opt/cloudmapper/entrypoint.sh

# Remove the demo data
RUN rm -rf /opt/cloudmapper/account-data/demo

# Install the python libraries needed for CloudMapper
RUN cd /opt/cloudmapper && pip install -r requirements.txt


ENTRYPOINT /opt/cloudmapper/entrypoint.sh
现在构建docker形象

C:\> docker build -t cloudmapper .
当我使用下面的命令运行docker时,我得到一个错误

C:/> docker run -t cloudmapper
错误

/bin/sh:1:/opt/cloudmapper/entrypoint.sh:未找到

已验证文件是否存在于适当的位置

在Windows10上使用Docker


dockerfile中的图像是python:3.7-slim

假设图像被删除并替换为文本,并且问题没有结束

bash可以在以下情况下返回“未找到文件”

  • 入口点shell脚本未标记为可执行
  • entrypoint shell脚本中的hash bang指向一个不存在的二进制文件
  • 它实际上并不存在
您可以通过确保使用new--chmod标志来确保设置了可执行位来解决第一个问题:

COPY --chmod=0755 *.sh /opt/cloudmapper/
ENTRYPOINT ["/opt/cloudmapper/entrypoint.sh"]
第二个问题可以通过确保
入口点的第一行来解决。如果您使用的是轻量级基础映像,如alpine:

#/垃圾箱/垃圾箱
set-e
#等
此外,如果特别是在Windows上,请确保所有文件,尤其是entrypoint.sh文件,都设置为utf-8编码,并带有lf样式的行结尾,因为解析sh文件失败可能会产生相同的错误

--
编辑以添加cr lf启示。

您附加到问题的图像文件是什么?您能否编辑问题以包含演示问题所需的源代码(在问题本身中,而不是在链接后面)以及您得到的错误(作为文本,而不是图像)?@DavidMaze:我已更新问题以获得问题中的更多详细信息。脚本是否可执行?它的第一行是什么(通常是
#!/bin/sh
)?它有Unix或DOS的行尾吗?它有windows的行尾。一旦我用Unix行结尾替换了它们,它现在就可以正常工作了。感谢您的帮助在使用权限更新docker文件后,我得到了错误:standard_init_linux.go:219:exec用户进程导致:没有这样的文件或目录如果脚本不执行,可以尝试将入口点设置为shell并执行它们:
entrypoint[“/bin/sh”,“/opt/cloudmapper/entrypoint.sh”]
必须将.sh文件中的CRLF更新为LF,并且可以正常工作。感谢Windows line endings ftw的帮助