2016-07-18 3 views
0

У меня есть контейнер для докеров, который неожиданно останавливается.Докерный контейнер неожиданно останавливается

важная часть моего Docker изображения выглядит следующим образом:

... 
ENTRYPOINT ["./start.sh"] 

CMD ["nginx", "-g", "daemon off;"] 

Это аль выполняется в ожидании сборки. Чем я начинаю контейнер с docker run -p 80:8080 myimage:latest

я вижу что-то вроде этого, когда я выполняю docker ps

"./start.sh nginx -g " 

Но через несколько секунд останавливается контейнер (вместо того, чтобы держать под управлением Nginx)

docker logs показать мне журналы вывода моего start.sh Последняя команда в этом .sh - это эхо «штраф», и я вижу это.

Что я хочу получить, так это то, что контейнер выполняет запись entrypointscript и после этого он запускает сервер nginx.

+1

Пожалуйста, включите ваш скрипт start.sh. – BMitch

+1

Как говорится в другом комментарии, нам нужно увидеть ваш стартовый скрипт, но я чувствую, что вы неправильно поняли роль ENTRYPOINT и COMMAND. Вы должны просмотреть их данные на странице https://docs.docker.com/engine/reference/builder/. –

ответ

1

Использование ENTRYPOINT и CMD не запускает их обоих последовательно. Аргументы CMD добавляются к точке входа. Ваш докер ps показывает это точно. This - достойное объяснение.

Необходимо, чтобы ваш start.sh обрабатывал ваши аргументы CMD, или ваш start.sh вызывал nginx, или перерабатывал его все вместе.