forked from pypi/warehouse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
122 lines (110 loc) · 3.27 KB
/
docker-compose.yml
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
version: '3'
volumes:
packages:
services:
db:
image: postgres:10.1
ports:
# 5432 may already in use by another PostgreSQL on host
- "5433:5432"
redis:
image: redis:latest
rabbitmq:
image: rabbitmq:latest
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
camo:
image: pypa/warehouse-camo:latest
ports:
- "9000:9000"
environment:
CAMO_KEY: "insecurecamokey"
web:
build:
context: .
args:
DEVEL: "yes"
IPYTHON: "no"
# Uncomment the line below and add the private repo URL if you're
# working on pypi-theme, this is a private repository due to the fact
# that other people's IP is contained in it.
#THEME_REPO:
command: hupper -m gunicorn.app.wsgiapp -b 0.0.0.0:8000 -c gunicorn-cabotage.conf warehouse.wsgi:application
env_file: dev/environment
volumes:
# We specify all of these directories instead of just . because we want to
# avoid having ./node_modules from the host OS being shared with the docker
# container, and since there's no way to exclude a directory, the only way
# to make this work is to share multiple, smaller directories. These cover
# the important things that we want to share, but changes to requirements
# or any file not in these directories will require a rebuild.
# The :z option fixes permission issues with SELinux by setting a
# permissive security context.
- ./dev:/opt/warehouse/src/dev:z
- ./docs:/opt/warehouse/src/docs:z
- ./warehouse:/opt/warehouse/src/warehouse:z
- ./tests:/opt/warehouse/src/tests:z
- ./htmlcov:/opt/warehouse/src/htmlcov:z
- .coveragerc:/opt/warehouse/src/.coveragerc:z
- packages:/var/opt/warehouse/packages
ports:
- "80:8000"
links:
- db
- redis
- rabbitmq
- elasticsearch
- notdatadog
files:
build:
context: .
working_dir: /var/opt/warehouse
command: python -m http.server 9001
volumes:
- packages:/var/opt/warehouse/packages
ports:
- "9001:9001"
worker:
build:
context: .
args:
DEVEL: "yes"
command: hupper -m celery -A warehouse worker -B -S redbeat.RedBeatScheduler -l info
volumes:
- ./warehouse:/opt/warehouse/src/warehouse:z
env_file: dev/environment
environment:
C_FORCE_ROOT: "1"
links:
- db
- redis
- rabbitmq
- elasticsearch
- smtp
- notdatadog
static:
build:
context: .
dockerfile: Dockerfile.static
command: bash -c "node --trace-warnings `which gulp` watch"
volumes:
- ./warehouse:/opt/warehouse/src/warehouse:z
- ./Gulpfile.babel.js:/opt/warehouse/src/Gulpfile.babel.js:z
- ./.babelrc:/opt/warehouse/src/.babelrc:z
- ./.sass-lint.yml:/opt/warehouse/src/.sass-lint.yml:z
smtp:
build:
context: .
command: python /opt/warehouse/dev/smtp.py 0.0.0.0:2525
ports:
- "2525:2525"
volumes:
- ./dev/smtp.py:/opt/warehouse/dev/smtp.py
notdatadog:
build:
context: .
command: python /opt/warehouse/dev/notdatadog.py 0.0.0.0:8125
ports:
- "8125:8125/udp"
volumes:
- ./dev/notdatadog.py:/opt/warehouse/dev/notdatadog.py