|
@@ -0,0 +1,121 @@
|
|
|
+# Sentry dev environment
|
|
|
+#
|
|
|
+# NOTE: This should not be used in production!
|
|
|
+#
|
|
|
+# Instructions:
|
|
|
+#
|
|
|
+# Build the container:
|
|
|
+# $ docker build --rm -t sentry:dev -f Dockerfile.dev .
|
|
|
+# Bootstrap the container:
|
|
|
+# $ docker run --name=sentry-dev -p 8000:8000 -it -v $PWD:/usr/src/sentry sentry:dev
|
|
|
+# Run the container:
|
|
|
+# $ docker start sentry-dev
|
|
|
+# Attach into the container:
|
|
|
+# $ docker exec -it sentry-dev bash
|
|
|
+# Run devserver:
|
|
|
+# $ docker exec -it sentry-dev sentry devserver 0.0.0.0:8000
|
|
|
+# Stop container:
|
|
|
+# $ docker stop sentry-dev
|
|
|
+# Remove container:
|
|
|
+# $ docker rm -f sentry-dev
|
|
|
+#
|
|
|
+FROM python:2.7.11-slim
|
|
|
+
|
|
|
+RUN groupadd -r memcached --gid=997 && useradd -r -g memcached --uid=997 memcached \
|
|
|
+ && groupadd -r redis --gid=998 && useradd -r -g redis --uid=998 redis \
|
|
|
+ && groupadd -r postgres --gid=999 && useradd -r -g postgres --uid=999 postgres
|
|
|
+
|
|
|
+RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
+ curl \
|
|
|
+ gcc \
|
|
|
+ git \
|
|
|
+ libffi-dev \
|
|
|
+ libpq-dev \
|
|
|
+ libxml2-dev \
|
|
|
+ libxslt-dev \
|
|
|
+ libyaml-dev \
|
|
|
+
|
|
|
+ # Extra dev tooling
|
|
|
+ postgresql-client \
|
|
|
+ make \
|
|
|
+ vim-nox \
|
|
|
+ less \
|
|
|
+ && rm -rf /var/lib/apt/lists/*
|
|
|
+
|
|
|
+# Sane defaults for pip
|
|
|
+ENV PIP_NO_CACHE_DIR off
|
|
|
+ENV PIP_DISABLE_PIP_VERSION_CHECK on
|
|
|
+ENV PYTHONUNBUFFERED 1
|
|
|
+
|
|
|
+# gpg keys listed at https://github.com/nodejs/node
|
|
|
+RUN set -ex \
|
|
|
+ && for key in \
|
|
|
+ 9554F04D7259F04124DE6B476D5A82AC7E37093B \
|
|
|
+ 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
|
|
|
+ 0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \
|
|
|
+ FD3A5288F042B6850C66B31F09FE44734EB7990E \
|
|
|
+ 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
|
|
|
+ DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
|
|
|
+ B9AE9905FFD7803F25714661B63B535A4C206CA9 \
|
|
|
+ C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
|
|
|
+ ; do \
|
|
|
+ gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \
|
|
|
+ done
|
|
|
+
|
|
|
+ENV NODE_VERSION 0.12.9
|
|
|
+ENV NPM_VERSION 2.14.17
|
|
|
+
|
|
|
+RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" \
|
|
|
+ && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
|
|
|
+ && gpg --verify SHASUMS256.txt.asc \
|
|
|
+ && grep " node-v$NODE_VERSION-linux-x64.tar.gz\$" SHASUMS256.txt.asc | sha256sum -c - \
|
|
|
+ && tar -xzf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 \
|
|
|
+ && rm "node-v$NODE_VERSION-linux-x64.tar.gz" SHASUMS256.txt.asc \
|
|
|
+ && npm install -g "npm@${NPM_VERSION}" \
|
|
|
+ && npm cache clear
|
|
|
+
|
|
|
+# make the "en_US.UTF-8" locale so postgres will be utf-8 enabled by default
|
|
|
+RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
|
|
|
+ && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
|
|
|
+ENV LANG en_US.utf8
|
|
|
+
|
|
|
+RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8
|
|
|
+
|
|
|
+ENV PG_MAJOR 9.4
|
|
|
+ENV PG_VERSION 9.4.6-1.pgdg80+1
|
|
|
+ENV PATH /usr/lib/postgresql/$PG_MAJOR/bin:$PATH
|
|
|
+
|
|
|
+RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main' $PG_MAJOR > /etc/apt/sources.list.d/pgdg.list \
|
|
|
+ && apt-get update && apt-get install -y postgresql-common \
|
|
|
+ && apt-get install -y \
|
|
|
+ postgresql-$PG_MAJOR=$PG_VERSION \
|
|
|
+ postgresql-contrib-$PG_MAJOR=$PG_VERSION \
|
|
|
+ && rm -rf /var/lib/apt/lists/* \
|
|
|
+ && rm "/etc/postgresql/$PG_MAJOR/main/pg_hba.conf" \
|
|
|
+ && touch "/etc/postgresql/$PG_MAJOR/main/pg_hba.conf" \
|
|
|
+ && chown -R postgres "/etc/postgresql/$PG_MAJOR/main/pg_hba.conf" \
|
|
|
+ && { echo; echo "host all all 0.0.0.0/0 trust"; } >> "/etc/postgresql/$PG_MAJOR/main/pg_hba.conf" \
|
|
|
+ && { echo; echo "local all all trust"; } >> "/etc/postgresql/$PG_MAJOR/main/pg_hba.conf"
|
|
|
+
|
|
|
+RUN service postgresql start \
|
|
|
+ && createdb -U postgres -E utf-8 --template template0 sentry \
|
|
|
+ && service postgresql stop
|
|
|
+
|
|
|
+ENV DEBIAN_FRONTEND=noninteractive
|
|
|
+RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
|
+ redis-server \
|
|
|
+ memcached \
|
|
|
+ postfix \
|
|
|
+ && rm -rf /var/lib/api/lists/*
|
|
|
+
|
|
|
+RUN mkdir -p /usr/src/sentry
|
|
|
+RUN mkdir -p /etc/sentry
|
|
|
+WORKDIR /usr/src/sentry
|
|
|
+ENV SENTRY_CONF /etc/sentry
|
|
|
+ENV C_FORCE_ROOT 1
|
|
|
+
|
|
|
+ADD scripts/docker-entrypoint.sh /entrypoint.sh
|
|
|
+ENTRYPOINT [ "/entrypoint.sh" ]
|
|
|
+
|
|
|
+EXPOSE 8000
|
|
|
+CMD [ "bootstrap" ]
|