繁体   English   中英

Dockerfile找不到入口点脚本

[英]Dockerfile can not find entrypoint script

我想使用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

谁能帮助我? 谢谢。 Docker文件总数:

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脚本,你可以直接从环境中读取$ INST变量,而不需要将它作为参数传递。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM