From 1ed6502377ac53dd44f01d509b977e01e94d7b18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com> Date: Wed, 24 Oct 2018 10:42:56 +0200 Subject: [PATCH] Dockerfile: swith to alpine --- .dockerignore | 7 +++++++ Dockerfile | 27 ++++++++++----------------- conf/entrypoint.sh | 10 ++++++---- conf/supervisor.conf | 11 +++++------ requirements.in | 2 +- requirements.txt | 2 +- 6 files changed, 30 insertions(+), 29 deletions(-) create mode 100644 .dockerignore mode change 100644 => 100755 conf/entrypoint.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..42a4e39 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +.env +.git +*.pyc +*.egg +*.egg-info +.cache +.pytest_cache diff --git a/Dockerfile b/Dockerfile index 188f09f..8c015f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,23 +1,18 @@ -FROM python:3.6 +FROM python:3.7-alpine RUN mkdir /code WORKDIR /code -ADD requirements.txt /code/ +COPY requirements.txt ./ -RUN apt-get update && apt-get install -y --no-install-recommends \ - nginx \ - supervisor \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* \ - && apt-get autoremove -y --purge +RUN apk add --no-cache nginx supervisor libpq \ + && apk add --no-cache --virtual=.build-deps build-base postgresql-dev libffi-dev \ + && pip install -r requirements.txt \ + && pip install gunicorn \ + && apk del .build-deps +RUN rm /etc/nginx/conf.d/default.conf \ + && echo "daemon off;" >> /etc/nginx/nginx.conf -COPY ./requirements.txt /code/requirements.txt -RUN pip install -r requirements.txt && \ - pip install gunicorn && \ - rm /etc/nginx/sites-enabled/default && \ - echo "daemon off;" >> /etc/nginx/nginx.conf - -ADD . /code/ +COPY . ./ RUN DATABASE_URL=none SECRET_KEY=xxx python manage.py collectstatic --noinput @@ -25,8 +20,6 @@ COPY conf/supervisor.conf /etc/supervisor/conf.d/supervisor.conf COPY conf/nginx.conf /etc/nginx/conf.d/openlobby-server.conf COPY conf/entrypoint.sh ./ -WORKDIR /code - EXPOSE 8010 ENTRYPOINT ["./entrypoint.sh"] diff --git a/conf/entrypoint.sh b/conf/entrypoint.sh old mode 100644 new mode 100755 index 1d11868..0f783eb --- a/conf/entrypoint.sh +++ b/conf/entrypoint.sh @@ -1,9 +1,11 @@ -#!/bin/bash +#!/bin/sh # migrate python manage.py migrate # Create log dirs and files -mkdir -p $( dirname $(cat /etc/supervisor/supervisord.conf | grep logfile= | grep "\.log" | sed s/.*logfile=// ) ) -touch $( cat /etc/supervisor/supervisord.conf | grep logfile= | grep "\.log" | sed s/.*logfile=// ) -exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisor.conf --nodaemon \ No newline at end of file +mkdir -p $( dirname $(cat /etc/supervisor/conf.d/supervisor.conf | grep logfile= | grep "\.log" | sed s/.*logfile=// ) ) +touch $( cat /etc/supervisor/conf.d/supervisor.conf | grep logfile= | grep "\.log" | sed s/.*logfile=// ) +mkdir /run/nginx + +exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisor.conf --nodaemon diff --git a/conf/supervisor.conf b/conf/supervisor.conf index eaf08f1..b716c20 100644 --- a/conf/supervisor.conf +++ b/conf/supervisor.conf @@ -14,10 +14,9 @@ stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 - [supervisord] -logfile = /var/log/supervisor/supervisord.log -logfile_maxbytes = 10MB -logfile_backups = 5 -loglevel = info -pidfile = /var/run/supervisord.pid \ No newline at end of file +logfile=/var/log/supervisor/supervisord.log +logfile_maxbytes=10MB +logfile_backups=5 +loglevel=info +pidfile=/var/run/supervisord.pid diff --git a/requirements.in b/requirements.in index 443ff41..c240013 100644 --- a/requirements.in +++ b/requirements.in @@ -1,3 +1,4 @@ +psycopg2-binary Django graphene graphene-django @@ -9,5 +10,4 @@ pyjwt iso8601 arrow bleach -psycopg2 dsnparse diff --git a/requirements.txt b/requirements.txt index 37a09a9..f6eb718 100644 --- a/requirements.txt +++ b/requirements.txt @@ -32,7 +32,7 @@ mako==1.0.7 # via oic markupsafe==1.0 # via mako oic==0.14.0 promise==2.2.1 # via graphene, graphene-django, graphql-core, graphql-relay -psycopg2==2.7.5 +psycopg2-binary==2.7.5 pycparser==2.19 # via cffi pycryptodomex==3.6.6 # via oic, pyjwkest pyjwkest==1.4.0 # via oic -- GitLab