Skip to content
This repository has been archived by the owner on Jan 19, 2021. It is now read-only.

Commit

Permalink
Make mozillians dockerfiles prod-ready.
Browse files Browse the repository at this point in the history
  • Loading branch information
johngian committed Apr 28, 2017
1 parent 72f9c17 commit c2d28b4
Show file tree
Hide file tree
Showing 9 changed files with 105 additions and 57 deletions.
6 changes: 0 additions & 6 deletions Dockerfile

This file was deleted.

4 changes: 4 additions & 0 deletions bin/run-dev.sh
@@ -0,0 +1,4 @@
#!/bin/sh

python manage.py migrate
python manage.py runserver 0.0.0.0:8000
6 changes: 6 additions & 0 deletions bin/run-prod.sh
@@ -0,0 +1,6 @@
#!/bin/sh

python manage.py migrate
python manage.py collectstatic --noinput
python manage.py compress --engine jinja2 --extension=.jinja
gunicorn mozillians.wsgi:application -b 0.0.0.0:${PORT:-8000} --log-file -
107 changes: 57 additions & 50 deletions docker-compose.yml
@@ -1,50 +1,57 @@
db:
image: mysql:5.5
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --max_allowed_packet=3M
environment:
- MYSQL_DATABASE=mozillians
- MYSQL_USER=mozillians
- MYSQL_PASSWORD=mozillians
- MYSQL_ROOT_PASSWORD=root
es:
image: barnybug/elasticsearch:1.2.1
memcached:
image: memcached
broker:
image: rabbitmq:3-management
ports:
- "15672:15672"
web:
build: .
ports:
- "8000:8000"
volumes:
- .:/code
links:
- db
- es
- memcached
- broker
command: bash -c "python manage.py migrate --noinput && python manage.py runserver 0.0.0.0:8000"
celery:
build: .
volumes:
- .:/code
links:
- db
- es
- broker
- memcached
command: celery -A mozillians worker -B -l INFO
environment:
- C_FORCE_ROOT=true
flower:
build: .
volumes:
- .:/code
links:
- db
- broker
ports:
- "5555:5555"
command: flower -A mozillians --address=0.0.0.0 --port=5555
version: '2'
services:
db:
image: mysql:5.5
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci --max_allowed_packet=3M
environment:
- MYSQL_DATABASE=mozillians
- MYSQL_USER=mozillians
- MYSQL_PASSWORD=mozillians
- MYSQL_ROOT_PASSWORD=root
es:
image: elasticsearch:1.7
memcached:
image: memcached
broker:
image: rabbitmq:3-management
ports:
- "15672:15672"
web:
build:
context: .
dockerfile: docker/dev
ports:
- "8000:8000"
volumes:
- .:/code
links:
- db
- es
- memcached
- broker
celery:
build:
context: .
dockerfile: docker/dev
volumes:
- .:/code
links:
- db
- es
- broker
- memcached
command: celery -A mozillians worker -B -l INFO
environment:
- C_FORCE_ROOT=true
flower:
build:
context: .
dockerfile: docker/dev
volumes:
- .:/code
links:
- db
- broker
ports:
- "5555:5555"
command: flower -A mozillians --address=0.0.0.0 --port=5555
14 changes: 14 additions & 0 deletions docker/dev
@@ -0,0 +1,14 @@
FROM python:2.7-slim

EXPOSE 8000
WORKDIR /code
CMD ["./bin/run-dev.sh"]

RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential libxml2-dev libxslt-dev \
mysql-client libmysqlclient-dev node-less gettext node-less && \
rm -rf /var/lib/apt/lists/*

COPY requirements /code/requirements/
RUN pip install --require-hashes --no-deps -r requirements/dev.txt
19 changes: 19 additions & 0 deletions docker/prod
@@ -0,0 +1,19 @@
FROM python:2.7-slim

EXPOSE 8000
WORKDIR /code
CMD ["./bin/run-prod.sh"]

RUN adduser --uid 431 --disabled-password --disabled-login --gecos 'webdev' --no-create-home webdev
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential libxml2-dev libxslt-dev \
mysql-client libmysqlclient-dev node-less gettext node-less && \
rm -rf /var/lib/apt/lists/*

COPY requirements /code/requirements/
RUN pip install --require-hashes --no-deps -r requirements/prod.txt
COPY . /code

RUN chown webdev.webdev -R .
USER webdev
1 change: 1 addition & 0 deletions mozillians/wsgi.py
3 changes: 3 additions & 0 deletions requirements/prod.txt
Expand Up @@ -335,3 +335,6 @@ progressbar2==3.12.0 \
python-utils==2.0.1 \
--hash=sha256:985f44edf24918d87531c339f8b126ce2d303cbbc9a4c7fc4dc81ac0726079ff \
--hash=sha256:670f9b992ebfc005329fd9740408f2a704e595d64c8f8da83f7977618dba4acc
gunicorn==19.7.1 \
--hash=sha256:75af03c99389535f218cc596c7de74df4763803f7b63eb09d77e92b3956b36c6 \
--hash=sha256:eee1169f0ca667be05db3351a0960765620dad53f53434262ff8901b68a1b622
2 changes: 1 addition & 1 deletion wsgi/playdoh.wsgi
Expand Up @@ -20,7 +20,7 @@ os.environ.setdefault('CELERY_LOADER', 'django')
wsgidir = os.path.dirname(__file__)
site.addsitedir(os.path.abspath(os.path.join(wsgidir, '../')))

from django.core.wsgi import get_wsgi_application
from django.core.wsgi import get_wsgi_application # noqa
application = get_wsgi_application()

if newrelic:
Expand Down

0 comments on commit c2d28b4

Please sign in to comment.