Mam katalog zawierający tylko dwa pliki, Dockerfile
i sayhello.sh
:Jak uruchomić skrypt bash w pojemniku Alpine Docker
.
├── Dockerfile
└── sayhello.sh
Dockerfile
czyta
FROM alpine
COPY sayhello.sh sayhello.sh
CMD ["sayhello.sh"]
i sayhello.sh
zawiera po prostu
echo hello
The Dockerfile
buduje pomyślnie:
[email protected] ~/d/s/trybash> docker build --tag trybash .
Sending build context to Docker daemon 3.072 kB
Step 1/3 : FROM alpine
---> 665ffb03bfae
Step 2/3 : COPY sayhello.sh sayhello.sh
---> Using cache
---> fe41f2497715
Step 3/3 : CMD sayhello.sh
---> Using cache
---> dfcc26c78541
Successfully built dfcc26c78541
Jednak gdy próbuję run
to dostaję executable file not found in $PATH
błąd:
[email protected] ~/d/s/trybash> docker run trybash
container_linux.go:247: starting container process caused "exec: \"sayhello.sh\": executable file not found in $PATH"
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"sayhello.sh\": executable file not found in $PATH".
ERRO[0001] error getting events from daemon: net/http: request canceled
Może ktoś wyjaśnić, co jest przyczyną tego? (Przypominam sobie uruchamianie skryptów na obrazach opartych na debian:jessie
w podobny sposób, więc być może jest to specyficzne dla Alpine)?
Udzielenie zgody na przyznanie dotacji nie jest wymagane w pliku Dockerfile, jeśli ma już uprawnienia – aerokite