Использование Docker и получение файла не найдено - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь использовать Docker и следую документации с начала работы , но мой тестовый скрипт показывает "not found".

Я пытаюсь запустить скрипт: test. sh (содержит только echo "Hello")

Мой каталог докеров содержит app/ docker-compose/ Dockerfile test.sh

Файл Docker содержит:

FROM openjdk:8u181
WORKDIR /app
COPY . /app
EXPOSE 69
ENV NAME mer
CMD "test.sh"

Я его строю так:

$ docker build --tag=mer .
Sending build context to Docker daemon  303.8MB
Step 1/6 : FROM openjdk:8u181
 ---> 82942d9df443
Step 2/6 : WORKDIR /app
 ---> Using cache
 ---> b2586c6519ea
Step 3/6 : COPY . /app
 ---> 8ecd700feafe
Step 4/6 : EXPOSE 69
 ---> Running in 343cb5014528
Removing intermediate container 343cb5014528
 ---> 629cdc57f74e
Step 5/6 : ENV NAME mer
 ---> Running in 53844c2ea6fd
Removing intermediate container 53844c2ea6fd
 ---> b952a8f45dc8
Step 6/6 : CMD "test.sh"
 ---> Running in 1f1ef99503b8
Removing intermediate container 1f1ef99503b8
 ---> ffe838007e82
Successfully built ffe838007e82
Successfully tagged mer:latest
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

и запустите его так:

$ docker run mer:latest
/bin/sh: 1: test.sh: not found

Почему написано «test.sh: not found»?

Моя среда: Windows 10 с запущенными командами Docker Desktop 2.1через Cygwin

1 Ответ

1 голос
/ 01 октября 2019

Вам нужно сослаться на test.sh из каталога /app, где он был COPY d после того, как вы установили его как WORKDIR:

CMD "/app/test.sh"

. Я рекомендую вам рассмотретьиспользуя ENTRYPOINT вместо CMD.

Поскольку вы используете процесс Bash, вы, вероятно, захотите продолжать использовать оболочку форма , т.е.

ENTRYPOINT "/app/test.sh"
...