diff options
-rw-r--r-- | .dockerignore | 1 | ||||
-rw-r--r-- | docker-compose.yml | 31 | ||||
-rwxr-xr-x | docker/app/migrate_and_serve.sh | 13 | ||||
-rw-r--r-- | docker/pysite.dockerapp | 23 |
4 files changed, 52 insertions, 16 deletions
diff --git a/.dockerignore b/.dockerignore index 33fc984e..d853d0d2 100644 --- a/.dockerignore +++ b/.dockerignore @@ -17,6 +17,7 @@ api/tests.py CHANGELOG.md CONTRIBUTING.md docker +!docker/app/migrate_and_boot.sh !docker/app/uwsgi.ini docker-compose.yml Dockerfile diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..95513d84 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,31 @@ +### Docker compose setup file +# This file can be used to quickly set up a development server +# with code auto-reloading and automatic execution of migrations. +# +## Note +# This file is not intended to be used for production. + +version: "3.6" +services: + django: + build: + context: . + dockerfile: docker/app/alpine/3.7/Dockerfile + command: docker/app/migrate_and_serve.sh + ports: + - "8000:8000" + depends_on: + - postgres + volumes: + - .:/app:ro + environment: + DATABASE_URL: postgres://pysite:supersecretpassword@postgres/pysite + DEBUG: "true" + SECRET_KEY: suitable-for-development-only + + postgres: + image: postgres:11-alpine + environment: + POSTGRES_DB: pysite + POSTGRES_PASSWORD: supersecretpassword + POSTGRES_USER: pysite diff --git a/docker/app/migrate_and_serve.sh b/docker/app/migrate_and_serve.sh new file mode 100755 index 00000000..7c20130b --- /dev/null +++ b/docker/app/migrate_and_serve.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +### NOTE +# This file is intended to be used by local setups. +# You do not want to run the Django development server +# in production. The default Dockerfile command will +# run using uWSGI, this script is provided purely as +# a convenience to run migrations and start a development server. + +echo [i] Applying migrations. +python manage.py migrate --verbosity 0 +echo [i] Starting server. +python manage.py runserver diff --git a/docker/pysite.dockerapp b/docker/pysite.dockerapp index 4a811861..dc472b2e 100644 --- a/docker/pysite.dockerapp +++ b/docker/pysite.dockerapp @@ -1,8 +1,8 @@ -version: 0.1.0 +version: 0.3.0 name: pysite description: | Our community website, built on Django and PostgreSQL. -#namespace: python-discord +namespace: python-discord maintainers: - name: Johannes Christ email: [email protected] @@ -11,15 +11,16 @@ maintainers: version: "3.6" services: django: - image: registry.gitlab.com/python-discord/projects/site/django:latest + build: + context: . + command: docker/app/migrate_and_serve.sh ports: - "127.0.0.1:4000:4000" environment: DATABASE_URL: "postgres://${pg_user}:${pg_passwd}@${pg_host}/${pg_db}" - DEBUG: 0 + DEBUG: 'false' SECRET_KEY: "${secret_key}" depends_on: - - migrator - postgres postgres: @@ -29,20 +30,10 @@ services: POSTGRES_USER: "${pg_user}" POSTGRES_PASSWORD: "${pg_passwd}" - migrator: - image: registry.gitlab.com/python-discord/projects/site/django:latest - environment: - DATABASE_URL: "postgres://${pg_user}:${pg_passwd}@${pg_host}/${pg_db}" - DEBUG: 0 - SECRET_KEY: "${secret_key}" - command: "python manage.py migrate" - depends_on: - - postgres - --- pg_user: pysite pg_db: pysite -pg_passwd: '' +pg_passwd: supersecretpassword pg_host: postgres secret_key: 'suitable-for-development-only' |