Windows 未找到Docker entrypoint.sh
按照说明将Duo CloudMapper部署到AWS环境并获取错误 Docker文件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
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指向一个不存在的二进制文件
- 它实际上并不存在
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的帮助