forked from getsentry/sentry
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile.dev
124 lines (108 loc) · 4.17 KB
/
Dockerfile.dev
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# 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 \
clang \
curl \
g++ \
gcc \
git \
libffi-dev \
libjpeg-dev \
libpq-dev \
libxml2-dev \
libxslt-dev \
libyaml-dev \
llvm-3.5 \
bzip2 \
# Extra dev tooling
make \
vim-nox \
less \
ntp \
&& 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 4.4.5
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
# 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.5
ENV PG_VERSION 9.5.*
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 --no-install-recommends \
postgresql-common \
postgresql-$PG_MAJOR=$PG_VERSION \
postgresql-client-$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/apt/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 [ "bash" ]