diff options
Diffstat (limited to 'docker/app')
| -rw-r--r-- | docker/app/Dockerfile | 14 | ||||
| -rw-r--r-- | docker/app/Dockerfile.local | 49 | ||||
| -rwxr-xr-x | docker/app/scripts/migrate.sh | 10 | ||||
| -rwxr-xr-x | docker/app/scripts/migrate_and_serve.sh (renamed from docker/app/migrate_and_serve.sh) | 2 | 
4 files changed, 71 insertions, 4 deletions
diff --git a/docker/app/Dockerfile b/docker/app/Dockerfile index 52cc6b32..903e7dc6 100644 --- a/docker/app/Dockerfile +++ b/docker/app/Dockerfile @@ -1,14 +1,17 @@  FROM bitnami/python:3.7-prod +# I have no idea what this does.  STOPSIGNAL SIGQUIT  ARG EXTRAS=deploy +# Create a user.  RUN adduser \      --disabled-login \      --no-create-home \      --uid 1500 \      pysite +# Install prerequisites needed to complete the dependency installation.  RUN apt-get update -y \      && \          apt-get install --no-install-recommends -y \ @@ -21,24 +24,29 @@ RUN apt-get update -y \      && \          rm -rf /var/lib/apt/lists/* +# Set up the working directory.  WORKDIR /app -  COPY Pipfile Pipfile.lock /app/ +# Pip install the stuff we'll need.  RUN rm -r /opt/bitnami/python/lib/python3.*/site-packages/setuptools* && \      pip install --no-cache-dir -U setuptools -  RUN python3 -m pip install pipenv \      && python3 -m pipenv install --system --deploy \      && pip install uwsgi==2.0.18 +# Copy everything into the docker environment.  COPY . . -RUN SECRET_KEY=placeholder DATABASE_URL=sqlite:// python3 manage.py collectstatic --no-input --clear --verbosity 0 +# RUN SECRET_KEY=placeholder DATABASE_URL=sqlite:// python3 manage.py collectstatic --no-input --clear --verbosity 0 +# Remove the prerequisites, dependency installation is now complete.  RUN apt-get purge -y \              gcc \              libc-dev \              libpq-dev +# Migrate, collect and start the app. +RUN chmod +x /app/docker/app/scripts/migrate.sh +ENTRYPOINT ["/app/docker/app/scripts/migrate.sh"]  CMD ["uwsgi", "--ini", "docker/app/uwsgi.ini"] diff --git a/docker/app/Dockerfile.local b/docker/app/Dockerfile.local new file mode 100644 index 00000000..c332c757 --- /dev/null +++ b/docker/app/Dockerfile.local @@ -0,0 +1,49 @@ +FROM bitnami/python:3.7-prod + +# I have no idea what this does. +STOPSIGNAL SIGQUIT +ARG EXTRAS=deploy + +# Create a user. +RUN adduser \ +    --disabled-login \ +    --no-create-home \ +    --uid 1500 \ +    pysite + +# Install prerequisites needed to complete the dependency installation. +RUN apt-get update -y \ +    && \ +        apt-get install --no-install-recommends -y \ +                gcc \ +                libc-dev \ +                libpq-dev \ +                git \ +    && \ +        apt-get clean \ +    && \ +        rm -rf /var/lib/apt/lists/* + +# Set up the working directory. +WORKDIR /app +COPY Pipfile Pipfile.lock /app/ + +# Pip install the stuff we'll need. +RUN rm -r /opt/bitnami/python/lib/python3.*/site-packages/setuptools* && \ +    pip install --no-cache-dir -U setuptools +RUN python3 -m pip install pipenv \ +    && python3 -m pipenv install --system --deploy \ +    && pip install uwsgi==2.0.18 + +# Copy everything into the docker environment. +COPY . . + +RUN SECRET_KEY=placeholder DATABASE_URL=sqlite:// python3 manage.py collectstatic --no-input --clear --verbosity 0 + +# Remove the prerequisites, dependency installation is now complete. +RUN apt-get purge -y \ +            gcc \ +            libc-dev \ +            libpq-dev + +CMD ["uwsgi", "--ini", "docker/app/uwsgi.ini"] diff --git a/docker/app/scripts/migrate.sh b/docker/app/scripts/migrate.sh new file mode 100755 index 00000000..22636c93 --- /dev/null +++ b/docker/app/scripts/migrate.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +echo --- Applying migrations --- +python manage.py migrate --verbosity 1 + +echo --- Collecting static files --- +python manage.py collectstatic --no-input --clear --verbosity 1 + +echo --- Starting uwsgi --- +exec "$@"  # This runs the CMD at the end of the Dockerfile diff --git a/docker/app/migrate_and_serve.sh b/docker/app/scripts/migrate_and_serve.sh index 42bf67a3..0b54a2e5 100755 --- a/docker/app/migrate_and_serve.sh +++ b/docker/app/scripts/migrate_and_serve.sh @@ -11,7 +11,7 @@ echo [i] Applying migrations.  python manage.py migrate --verbosity 1  echo [i] Collecting static files. -python manage.py collectstatic --no-input --clear --verbosity 0 +python manage.py collectstatic --no-input --clear --verbosity 1  echo [i] Creating a superuser.  echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('admin', 'admin', 'admin') if not User.objects.filter(username='admin').exists() else print('Admin user already exists')" | python manage.py shell  |