Dockerfile找不到入口点脚本

我想使用bash脚本作为dockerfile中的入口点。 代码如下:

ENV INST INIT ADD start.sh /start.sh RUN chmod 777 /start.sh ENTRYPOINT /start.sh $INST 

应该是对的。 但是当我build立图像并运行它时,结果如下:

 /bin/sh: 1: /start.sh: not found 

任何人都可以帮我吗? 谢谢。 总Dockerfile:

 FROM debian:latest ENV INST INIT RUN apt-get update RUN apt-get install -y git build-essential gcc g++ vim RUN mkdir /Lab-C-Framework WORKDIR /Lab-C-Framework ADD Lab-C-Framework /Lab-C-Framework RUN make install RUN chmod 777 -R /Lab-C-Framework RUN mkdir /project ADD bin /project ADD src /project ADD header /project ADD tests /project ADD Docs /project ADD Makefile /project RUN chmod 777 -R /project ADD start.sh /start.sh RUN chmod 777 /start.sh RUN mkdir /code RUN chmod 777 /code VOLUME /code WORKDIR /code ENTRYPOINT /start.sh $INST 

你可以尝试使用以下设置你的入口点:

 COPY start.sh /start.sh RUN chmod +x /start.sh ENTRYPOINT ["/start.sh", "$INST"] 

如果你可以编辑start.sh脚本,你可以直接从环境中读取$ INSTvariables,而不需要将它作为parameter passing。

它看起来像/start.sh脚本中的第一行指向不存在的东西。 如果是#!/bin/bash ,则需要在映像中安装bash。 如果您的shell安装在容器中,请确保您的第一行最后没有窗口换行符。