1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- FROM python:3.5-alpine
- ADD requirements/ /requirements/
- RUN set -ex \
- && apk add --no-cache --virtual .build-deps \
- gcc \
- g++ \
- make \
- libc-dev \
- musl-dev \
- linux-headers \
- pcre-dev \
- postgresql-dev \
- libjpeg-turbo-dev \
- && pyvenv /venv \
- && /venv/bin/pip install -U pip \
- && LIBRARY_PATH=/lib:/usr/lib /bin/sh -c "/venv/bin/pip install -r /requirements/production.txt" \
- && runDeps="$( \
- scanelf --needed --nobanner --recursive /venv \
- | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
- | sort -u \
- | xargs -r apk info --installed \
- | sort -u \
- )" \
- && apk add --virtual .python-rundeps $runDeps \
- && apk del .build-deps
- RUN apk add --no-cache postgresql-client
- RUN mkdir /code/
- WORKDIR /code/
- ADD . /code/
- EXPOSE 8000
- # Add custom environment variables needed by Django or your settings file here:
- ENV DJANGO_SETTINGS_MODULE=bakerydemo.settings.production DJANGO_DEBUG=off
- # uWSGI configuration (customize as needed):
- ENV UWSGI_VIRTUALENV=/venv UWSGI_WSGI_FILE=bakerydemo/wsgi_production.py UWSGI_HTTP=:8000 UWSGI_MASTER=1 UWSGI_WORKERS=2 UWSGI_THREADS=8 UWSGI_UID=1000 UWSGI_GID=2000
- # Call collectstatic with dummy environment variables:
- RUN DATABASE_URL=postgres://none REDIS_URL=none /venv/bin/python manage.py collectstatic --noinput
- # start uWSGI, using a wrapper script to allow us to easily add more commands to container startup:
- ENTRYPOINT ["/code/docker-entrypoint.sh"]
- CMD ["/venv/bin/uwsgi", "--http-auto-chunked", "--http-keepalive"]
|