我想使用bash脚本作为dockerfile中的入口点。代码一击:
ENV INST INIT
ADD start.sh /start.sh
RUN chmod 777 /start.sh
ENTRYPOINT /start.sh $INST
应该是对的。但是当我构建图像并运行它时,结果如下:
/bin/sh: 1: /start.sh: not found
有人能帮帮我吗?谢谢。 Total 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
答案 0 :(得分:2)
您可以尝试使用以下方式设置入口点:
COPY start.sh /start.sh
RUN chmod +x /start.sh
ENTRYPOINT ["/start.sh", "$INST"]
如果您可以编辑start.sh脚本,您可能会直接从环境中读取$ INST变量,而无需将其作为参数传递。