Проверка работоспособности MongoDB в Dockerfile - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь создать проверку работоспособности для моего контейнера MongoDB, настроенного в моем Dockerfile :

FROM ubuntu

RUN apt-get update && apt-get install -y gnupg2

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' > tee /etc/apt/sources.list.d/mongodb.list

RUN apt-get update

RUN apt-get install -y mongodb

RUN mkdir -p /data/db

EXPOSE 27017

**HEALTHCHECK --interval=5s --timeout=3s CMD /etc/init.d/mongodb status || exit 1**

CMD ["usr/bin/mongod", "--smallfiles"]

Но когда я собираю образ и запускаю контейнер, после запуска docker ps в столбце status отображается Up 20 seconds (unhealthy).

При входе в контейнер с bash при попытке запустить service mongodb start происходит сбой.

В файле журнала (/var/log/mongodb/mongodb.log) там написано Failed to set up listener: SocketException: Address already in use

Но другого запущенного контейнера с MongoDB нет.

Что может быть причиной этого?

1 Ответ

0 голосов
/ 21 февраля 2020

Возможно, ошибка в последней строке

Изменить эту строку CMD ["usr/bin/mongod", "--smallfiles"]

на

CMD ["/usr/bin/mongod", "--smallfiles"]

Update1 :

изменить эту строку **HEALTHCHECK --interval=5s --timeout=3s CMD /etc/init.d/mongodb status || exit 1**

на

HEALTHCHECK --interval=5s --timeout=3s CMD /etc/init.d/mongodb status || exit 1

...