This repository was archived by the owner on Nov 22, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
103 lines (85 loc) · 2.47 KB
/
Dockerfile
File metadata and controls
103 lines (85 loc) · 2.47 KB
1
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# Dockerfile for the PDC's HubDB service
#
#
# HubDB for PDC-collected aggregate data. Based on Mongo official 3.0.
#
# Example:
# sudo docker pull pdcbc/hubdb
# sudo docker run -d --name hubdb -h hubdb --restart=always \
# -v /pdc/data/private/mongo_live/:/data/db/:rw \
# -v /pdc/data/private/mongo_dump/:/data/dump/:rw \
# pdcbc/hubdb:latest
#
# Folder paths
# - Mongo live db: -v </path/>:/data/db/:rw
# - Mongo dumps: -v </path/>:/data/dump/:rw
#
#
FROM phusion/baseimage
MAINTAINER derek.roberts@gmail.com
################################################################################
# Start - modified from https://hub.docker.com/_/mongo/
################################################################################
# Environment variables
#
ENV TERM xterm
ENV DEBIAN_FRONTEND noninteractive
#
ENV MONGO_MAJOR 3.2
ENV MONGO_VERSION 3.2.0
# Create users and groups
#
RUN groupadd -r mongodb; \
useradd -r -g mongodb mongodb
# Packages
#
RUN apt-key adv --keyserver hkp://pgp.mit.edu --recv-keys 42F3E95A2C4F08279C4960ADD68FA50FEA312927; \
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/$MONGO_MAJOR multiverse" > /etc/apt/sources.list.d/mongodb-org.list
RUN 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/* \
/var/lib/mongodb \
/etc/mongod.conf
################################################################################
# End - modified from https://hub.docker.com/_/mongo/
################################################################################
# Prepare /app/ folder
#
WORKDIR /app/
COPY . .
# Mongo startup
#
RUN mkdir -p /etc/service/mongod/; \
SCRIPT=/etc/service/mongod/run; \
( \
echo "#!/bin/bash"; \
echo ""; \
echo "set -e -o nounset"; \
echo ""; \
echo ""; \
echo "# Start mongod"; \
echo "#"; \
echo "chown -R mongodb:mongodb /data/db"; \
echo "exec /sbin/setuser mongodb mongod --storageEngine wiredTiger"; \
) \
>> ${SCRIPT}; \
chmod +x ${SCRIPT}
# Maintenance script and cron job
#
RUN SCRIPT=/app/mongo_maint.sh; \
( \
echo "# Run database dump/maintenance script (boot, 2 PST = 10 UTC)"; \
echo "@reboot ${SCRIPT}"; \
echo "0 10 * * * ${SCRIPT}"; \
) \
| crontab -
# Ports and volumes
#
EXPOSE 27017
#
VOLUME /data/db/