FROM phusion/baseimage:0.9.22 LABEL maintainer="Denys Zhdanov " RUN apt-get -y update \ && apt-get -y upgrade \ && apt-get -y --force-yes install vim \ nginx \ python-dev \ python-flup \ python-pip \ python-ldap \ expect \ git \ memcached \ sqlite3 \ libffi-dev \ libcairo2 \ libcairo2-dev \ python-cairo \ python-rrdtool \ pkg-config \ nodejs \ && rm -rf /var/lib/apt/lists/* # fix python dependencies (LTS Django and newer memcached/txAMQP) RUN pip install django==1.8.18 \ python-memcached==1.53 \ txAMQP==0.6.2 \ && pip install --upgrade pip # install whisper RUN git clone -b 1.0.2 --depth 1 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 1.0.2 --depth 1 https://github.com/graphite-project/carbon.git /usr/local/src/carbon WORKDIR /usr/local/src/carbon RUN pip install -r requirements.txt \ && python ./setup.py install # install graphite RUN git clone -b 1.0.2 --depth 1 https://github.com/graphite-project/graphite-web.git /usr/local/src/graphite-web WORKDIR /usr/local/src/graphite-web RUN pip install -r requirements.txt \ && python ./setup.py install ADD conf/opt/graphite/conf/*.conf /opt/graphite/conf/ ADD conf/opt/graphite/webapp/graphite/local_settings.py /opt/graphite/webapp/graphite/local_settings.py ADD conf/opt/graphite/webapp/graphite/app_settings.py /opt/graphite/webapp/graphite/app_settings.py WORKDIR /opt/graphite/webapp RUN mkdir -p /var/log/graphite/ \ && PYTHONPATH=/opt/graphite/webapp django-admin.py collectstatic --noinput --settings=graphite.settings # install statsd RUN git clone -b v0.7.2 https://github.com/etsy/statsd.git /opt/statsd ADD conf/opt/statsd/config.js /opt/statsd/config.js # config nginx RUN rm /etc/nginx/sites-enabled/default ADD conf/etc/nginx/nginx.conf /etc/nginx/nginx.conf ADD conf/etc/nginx/sites-enabled/graphite-statsd.conf /etc/nginx/sites-enabled/graphite-statsd.conf # init django admin ADD conf/usr/local/bin/django_admin_init.exp /usr/local/bin/django_admin_init.exp ADD conf/usr/local/bin/manage.sh /usr/local/bin/manage.sh RUN chmod +x /usr/local/bin/manage.sh \ && /usr/local/bin/django_admin_init.exp # logging support RUN mkdir -p /var/log/carbon /var/log/graphite /var/log/nginx ADD conf/etc/logrotate.d/graphite-statsd /etc/logrotate.d/graphite-statsd # daemons ADD conf/etc/service/carbon/run /etc/service/carbon/run ADD conf/etc/service/carbon-aggregator/run /etc/service/carbon-aggregator/run ADD conf/etc/service/graphite/run /etc/service/graphite/run ADD conf/etc/service/statsd/run /etc/service/statsd/run ADD conf/etc/service/nginx/run /etc/service/nginx/run # default conf setup ADD conf /etc/graphite-statsd/conf ADD conf/etc/my_init.d/01_conf_init.sh /etc/my_init.d/01_conf_init.sh # cleanup RUN apt-get clean\ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # defaults EXPOSE 80 2003-2004 2023-2024 8125/udp 8126 VOLUME ["/opt/graphite/conf", "/opt/graphite/storage", "/etc/nginx", "/opt/statsd", "/etc/logrotate.d", "/var/log"] WORKDIR / ENV HOME /root ENV STATSD_INTERFACE udp CMD ["/sbin/my_init"]