Я хочу настроить контейнер MongoDB Docker, который будет работать на основе указанного мной файла конфигурации. Вот:
storage:
dbPath: /data/db/mongodb
journal:
enabled: true
systemLog:
destination: file
logAppend: true
path: /data/db/mongod.log
net:
port: 27017
bindIp: 127.0.0.1,162.243.243.233
Я загрузил Dockerfile и docker-entrypoint.sh из Docker GitHub и изменил первый, чтобы он соответствовал моим потребностям. Вот соответствующая часть того, что у меня есть:
ENV MONGO_MAJOR 3.2
ENV MONGO_VERSION 3.2.6
RUN echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/$MONGO_MAJOR main" > /etc/apt/sources.list.d/mongodb-org.list
RUN set -x \
&& apt-get update \
&& apt-get install -y \
mongodb-org=$MONGO_VERSION \
mongodb-org-server=$MONGO_VERSION \
mongodb-org-shell=$MONGO_VERSION \
mongodb-org-mongos=$MONGO_VERSION \
mongodb-org-tools=$MONGO_VERSION \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /var/lib/mongodb \
&& mv /etc/mongod.conf /etc/mongod.conf.orig
RUN mkdir -p /data /data/db /data/configdb \
&& chown -R mongodb:mongodb /data /data/db /data/configdb
VOLUME /data /data/db /data/configdb /etc
COPY docker-entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
# Add the custom config file
ADD ["mongod.conf","/data"]
EXPOSE 27017
CMD ["mongod", "--config", "/data/mongod.conf"]
Когда я пытаюсь создать образ, это удается. После docker run
он выходит, как только создается.
Когда последняя строка в Dockerfile выглядит как CMD ["mongod"]
, все в порядке, контейнер работает, но доступен только с localhost. По моему mongod.conf
, Я пытаюсь расширить доступ к своему IP-адресу.
Конфигурация выглядит нормально, и YAML действителен. Он также доступен для контейнера (docker start -ai <CID>
не дает entrypoint.sh
выпуск). В чем проблема и как ее исправить?