3 changed files with 70 additions and 0 deletions
@ -0,0 +1,60 @@ |
|||||
|
# Use an official Python runtime based on Debian 10 "buster" as a parent image. |
||||
|
FROM python:3.8.1-slim-buster |
||||
|
|
||||
|
# Add user that will be used in the container. |
||||
|
RUN useradd wagtail |
||||
|
|
||||
|
# Port used by this container to serve HTTP. |
||||
|
EXPOSE 8000 |
||||
|
|
||||
|
# Set environment variables. |
||||
|
# 1. Force Python stdout and stderr streams to be unbuffered. |
||||
|
# 2. Set PORT variable that is used by Gunicorn. This should match "EXPOSE" |
||||
|
# command. |
||||
|
ENV PYTHONUNBUFFERED=1 \ |
||||
|
PORT=8000 |
||||
|
|
||||
|
# Install system packages required by Wagtail and Django. |
||||
|
RUN apt-get update --yes --quiet && apt-get install --yes --quiet --no-install-recommends \ |
||||
|
build-essential \ |
||||
|
libpq-dev \ |
||||
|
libmariadbclient-dev \ |
||||
|
libjpeg62-turbo-dev \ |
||||
|
zlib1g-dev \ |
||||
|
libwebp-dev \ |
||||
|
&& rm -rf /var/lib/apt/lists/* |
||||
|
|
||||
|
# Install the application server. |
||||
|
RUN pip install "gunicorn==20.0.4" |
||||
|
|
||||
|
# Install the project requirements. |
||||
|
COPY requirements.txt / |
||||
|
RUN pip install -r /requirements.txt |
||||
|
|
||||
|
# Use /app folder as a directory where the source code is stored. |
||||
|
WORKDIR /app |
||||
|
|
||||
|
# Set this directory to be owned by the "wagtail" user. This Wagtail project |
||||
|
# uses SQLite, the folder needs to be owned by the user that |
||||
|
# will be writing to the database file. |
||||
|
RUN chown wagtail:wagtail /app |
||||
|
|
||||
|
# Copy the source code of the project into the container. |
||||
|
COPY --chown=wagtail:wagtail . . |
||||
|
|
||||
|
# Use user "wagtail" to run the build commands below and the server itself. |
||||
|
USER wagtail |
||||
|
|
||||
|
# Collect static files. |
||||
|
RUN python manage.py collectstatic --noinput --clear |
||||
|
|
||||
|
# Runtime command that executes when "docker run" is called, it does the |
||||
|
# following: |
||||
|
# 1. Migrate the database. |
||||
|
# 2. Start the application server. |
||||
|
# WARNING: |
||||
|
# Migrating database at the same time as starting the server IS NOT THE BEST |
||||
|
# PRACTICE. The database should be migrated manually or using the release |
||||
|
# phase facilities of your hosting platform. This is used only so the |
||||
|
# Wagtail instance can be started with a simple "docker run" command. |
||||
|
CMD set -xe; python manage.py migrate --noinput; gunicorn blog.wsgi:application |
Binary file not shown.
@ -0,0 +1,10 @@ |
|||||
|
#!/usr/bin/env python |
||||
|
import os |
||||
|
import sys |
||||
|
|
||||
|
if __name__ == "__main__": |
||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "blog.settings.dev") |
||||
|
|
||||
|
from django.core.management import execute_from_command_line |
||||
|
|
||||
|
execute_from_command_line(sys.argv) |
Loading…
Reference in new issue