2016-08-10 7 views
1

Вот мой Dockerfile:Docker Контейнер Команда не может найти скрипт

FROM debian 

MAINTAINER Andrew Ford<[email protected]> 
RUN apt-get update 
COPY entrypoint.sh/

ENTRYPOINT ["/entrypoint.sh"] 

и вот мой entrypoint.sh (тот же каталог, Dockerfile)

#!/bin/bash 

echo Hello 

тогда я побежал:

docker build --no-cache=true -t test/dockerfile-sayhello . 

и когда я убежал:

docker run test/dockerfile-sayhello 

возвращается:

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: Container command '/entrypoint.sh' not found or does not exist.. 

Я попытался прибегая к помощи вокруг, чтобы попытаться увидеть, если я сделал какой-либо очевидную ошибку, но я до сих пор не удалось идентифицировать. Может быть, некоторые из вас может помочь

Edit: также бегала CHMOD + х entrypoint.sh дать разрешение

+0

Что делает 'docker run test/dockerfile-sayhello ls -l/entrypoint' вывод? Имеет ли ваш файл сценария окончание строк Unix? – Matt

+0

Он возвращает то же самое, да, он имеет окончание строки unix. – paperpin

+0

Попробуйте вместо. ./ entrypoint.sh'. –

ответ

0

Я просто попытался с помощью следующей Dockerfile (добавление chmod)

FROM debian 

MAINTAINER Andrew Ford<[email protected]> 
RUN apt-get update 
COPY entrypoint.sh/

RUN chmod 755 /entrypoint.sh 

ENTRYPOINT ["/entrypoint.sh"] 

И это работает ожидается.


Не нравится issue 20789:

Я пытался превратить установку Dockerfile из Phusion/baseimage до gliderslabs/альпийский. Оказывается, эти сценарии оболочки используют bash - конечно! Просто измените на sh как bash нет, в результате выше ошибок ..

последней debian image должен включать Баш, так как его по умолчанию CMD является /bin/bash.

Смежные вопросы