forked from hopsoft/docker-graphite-statsd
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile
79 lines (65 loc) · 2.29 KB
/
Dockerfile
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
FROM phusion/baseimage:0.9.15
MAINTAINER Nathan Hopkins <[email protected]>
#RUN echo deb http://archive.ubuntu.com/ubuntu $(lsb_release -cs) main universe > /etc/apt/sources.list.d/universe.list
RUN apt-get -y update\
&& apt-get -y upgrade
# dependencies
RUN apt-get -y --force-yes install vim\
nginx\
python-dev\
python-flup\
python-pip\
expect\
git\
memcached\
sqlite3\
libcairo2\
libcairo2-dev\
python-cairo\
pkg-config\
nodejs
# python dependencies
RUN pip install django==1.3\
python-memcached==1.53\
django-tagging==0.3.1\
twisted==11.1.0\
txAMQP==0.6.2
# install graphite
RUN git clone -b 0.9.12 https://github.com/graphite-project/graphite-web.git /usr/local/src/graphite-web
WORKDIR /usr/local/src/graphite-web
RUN python ./setup.py install
# install whisper
RUN git clone -b 0.9.12 https://github.com/graphite-project/whisper.git /usr/local/src/whisper
WORKDIR /usr/local/src/whisper
RUN python ./setup.py install
# install carbon
RUN git clone -b 0.9.12 https://github.com/graphite-project/carbon.git /usr/local/src/carbon
WORKDIR /usr/local/src/carbon
RUN python ./setup.py install
# install statsd
RUN git clone -b v0.7.2 https://github.com/etsy/statsd.git /opt/statsd
# config nginx
RUN rm /etc/nginx/sites-enabled/default
RUN ln -s /etc/nginx/sites-available/graphite.conf /etc/nginx/sites-enabled/graphite.conf
# init django admin
ADD scripts/django_admin_init.exp /usr/local/bin/django_admin_init.exp
RUN /usr/local/bin/django_admin_init.exp
# logging support
RUN mkdir -p /var/log/carbon /var/log/graphite /var/log/nginx
# daemons
ADD daemons/carbon.sh /etc/service/carbon/run
ADD daemons/carbon-aggregator.sh /etc/service/carbon-aggregator/run
ADD daemons/graphite.sh /etc/service/graphite/run
ADD daemons/statsd.sh /etc/service/statsd/run
ADD daemons/nginx.sh /etc/service/nginx/run
# cleanup
RUN apt-get clean\
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Add the default config files and the init_conf_files script to initialize configuration files at container startup
ADD conf /conf-default
ADD scripts/init_conf_files.sh /etc/my_init.d/01_init_conf_files.sh
# defaults
EXPOSE 80:80 2003:2003 8125:8125/udp
VOLUME ["/opt/graphite", "/opt/graphite/storage/whisper", "/etc/nginx", "/opt/statsd", "/etc/logrotate.d", "/var/log", "/conf-custom"]
ENV HOME /root
CMD ["/sbin/my_init"]