Run mongodb as a docker container
The following Dockerfile definition runs a mongodb 3.4.18 database inside a docker container.
Dockerfile1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| FROM debian:jessie-slim
RUN apt-get update && \ apt-get install -y ca-certificates && \ rm -rf /var/lib/apt/lists/*
RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 0C49F3730359A14518585931BC711F9BA15703C6 && \ gpg --export $GPG_KEYS > /etc/apt/trusted.gpg.d/mongodb.gpg
ARG MONGO_PACKAGE=mongodb-org ARG MONGO_REPO=repo.mongodb.org
ENV MONGO_PACKAGE=${MONGO_PACKAGE} MONGO_REPO=${MONGO_REPO} ENV MONGO_MAJOR 3.4 ENV MONGO_VERSION 3.4.18
RUN echo "deb http://$MONGO_REPO/apt/debian \ jessie/${MONGO_PACKAGE%-unstable}/$MONGO_MAJOR main" | \ tee "/etc/apt/sources.list.d/${MONGO_PACKAGE%-unstable}.list" RUN echo "/etc/apt/sources.list.d/${MONGO_PACKAGE%-unstable}.list" RUN apt-get update RUN apt-get install -y ${MONGO_PACKAGE}=$MONGO_VERSION
COPY users.json ./users.json COPY start.sh ./start.sh RUN chmod +x ./start.sh
VOLUME ["/data/db"] WORKDIR /data EXPOSE 27017 CMD /start.sh
|
The file start.sh can be also useful in order to preimport data into the mongodb:
start.sh1 2 3 4 5
| #!/bin/bash set -m mongod --smallfiles & mongoimport --db test --collection users --file /users.json fg %1
|