mirror of
https://github.com/grafana/grafana.git
synced 2024-12-02 05:29:42 -06:00
110 lines
3.6 KiB
Docker
110 lines
3.6 KiB
Docker
FROM phusion/baseimage:0.9.22
|
|
MAINTAINER Denys Zhdanov <denis.zhdanov@gmail.com>
|
|
|
|
RUN apt-get -y update \
|
|
&& apt-get -y upgrade \
|
|
&& apt-get -y 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/*
|
|
|
|
# choose a timezone at build-time
|
|
# use `--build-arg CONTAINER_TIMEZONE=Europe/Brussels` in `docker build`
|
|
ARG CONTAINER_TIMEZONE
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
RUN if [ ! -z "${CONTAINER_TIMEZONE}" ]; \
|
|
then ln -sf /usr/share/zoneinfo/$CONTAINER_TIMEZONE /etc/localtime && \
|
|
dpkg-reconfigure -f noninteractive tzdata; \
|
|
fi
|
|
|
|
# fix python dependencies (LTS Django and newer memcached/txAMQP)
|
|
RUN pip install --upgrade pip && \
|
|
pip install django==1.8.18 \
|
|
python-memcached==1.53 \
|
|
txAMQP==0.6.2
|
|
|
|
ARG version=1.0.2
|
|
ARG whisper_version=${version}
|
|
ARG carbon_version=${version}
|
|
ARG graphite_version=${version}
|
|
|
|
ARG statsd_version=v0.7.2
|
|
|
|
# install whisper
|
|
RUN git clone -b ${whisper_version} --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 ${carbon_version} --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 ${graphite_version} --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 ${statsd_version} 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
|
|
CMD ["/sbin/my_init"]
|