2017-05-12 69 views
0

我想使用bash腳本作爲dockerfile中的入口點。代碼如下: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 

任何人都可以幫助我嗎?謝謝。 總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 
+1

我會將腳本添加到容器上的/ bin目錄,並使用start.sh而不使用/作爲入口點。 –

回答

1

你可以嘗試使用設置您的入口點:

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

如果你可以編輯start.sh腳本,你可能couls閱讀環境$ INST變量不正確需要將它作爲參數傳遞。

1

看起來您的/start.sh腳本中的第一行指向不存在的內容。如果它是#!/bin/bash,則需要在映像中安裝bash。如果您的外殼安裝在容器中,請確保您的第一行最後沒有窗口換行。

相關問題