Dockerfile не запускает CMD должным образом или порты не отображаются - PullRequest
0 голосов
/ 13 марта 2019

Я не хочу немного поиграть с Dockerfiles.Поэтому я попытался запустить Apache Nifi в Docker.Я знаю, что уже есть контейнер, предназначенный для обучения.Я настроил свой Dockerfile следующим образом:

FROM openjdk:8-jre-alpine
COPY . /app
WORKDIR /app
EXPOSE 8080
CMD ["sh","nifi-1.9.0/bin/nifi.sh","start"]

Теперь, похоже, это работает, но когда я пытаюсь запустить контейнер с:

docker build --tag nifid .
docker run --name nifi-app -p 8080:8080 nifid

Кажется, что он работает, но порт нея не могу добраться до приложения через localhost: 8080.Любые предложения о том, как поступить?Это то, что Docker PS - все показывает мне

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                    PORTS               NAMES
ccf75612d5ac        nifid               "sh nifi-1.9.0/bin/n…"   20 hours ago        Exited (0) 20 hours ago                       nifi-app

Я понимаю, что приложение было возбуждено сейчас.Что-то не так в Dockerfile?

РЕДАКТИРОВАТЬ: В журналах докера [ID контейнера] выпало следующее:

Java home: /usr/lib/jvm/java-1.8-openjdk/jre
NiFi home: /app/nifi-1.9.0

Bootstrap Config File: /app/nifi-1.9.0/conf/bootstrap.conf

РЕДАКТИРОВАТЬ: Найдена хорошая "документация" https://hub.docker.com/r/apache/nifi/dockerfile

Немного до глубины, но это должно к работе

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Контейнеру нужен процесс pid 0, чтобы он работал вечно до тех пор, пока не будет убит или не будет ошибок.

Например, enter image description here

Пожалуйста, обратитесь к https://stackoverflow.com/a/45450456/1926952, чтобы поддерживать работу контейнера

0 голосов
/ 13 марта 2019

Ну, похоже, ваш контейнер остановился (статус Exited)

docker ps (shows running containers)
docker ps -a (shows all containers, even stopped)

Попробуйте

docker logs <container-id> 

Чтобы увидеть вывод из контейнера.Он правильно скажет вам, почему контейнер остановился.

...