Commit 701efcdd authored by Daniel Schreiber's avatar Daniel Schreiber

Docker Doku erweitert

parent 5dd53654
Pipeline #34191 passed with stage
in 31 seconds
......@@ -18,11 +18,11 @@ Container starten
* [docker/example-settings/mariadb/settings_docker.py]
Für die Konfiguration kann ein beliebiges Verzeichnis auf dem Hostsystem gewählt werden, das gebackupt wird.
* Apache mit SSL muss eingerichtet sein. Außerdem ist [mod_proxy_uwsgi](https://httpd.apache.org/docs/2.4/mod/mod_proxy_uwsgi.html) notwendig. Der UWSGI im Container lauscht auf Port 8000 mit UWSGI Protokoll.
* Beim Start des Containers werden Datenbankmigrationen durchgeführt und die Datei `django_secret.txt` im Konfigurationsverzeichnis angelegt, wenn noch nicht vorhanden. Dort wird das Django Secret gespeichert, mit dem Cookies verschlüsselt werden.
* Beim Start des Containers werden Datenbankmigrationen durchgeführt und die Datei `django_secret.txt` im Konfigurationsverzeichnis angelegt, wenn noch nicht vorhanden. Dort wird das Django Secret gespeichert, mit dem Cookies verschlüsselt werden. Bei Upgrade Installationen, die von Nicht-Docker-Deployment zu Docker-Deployment migrieren, muss der Wert des Django Secret übernommen werden (siehe unten).
Angenommen, die Konfiguration befindet sich unter `/etc/frms`, dann sollte der Container folgendermaßen gestartet werden:
```bash
docker run --name frms --rm -v /etc/frms/:/var/www/django/frms/private/ -d -p 127.0.0.1:8000:8000 frms
docker run --name frms --rm -v /etc/frms/:/var/www/django/frms/private/ -d -p 127.0.0.1:8000:8000 frms:latest
```
Im Apache reicht dann folgende Konfiguration im passenden Virtualhost:
......@@ -59,4 +59,63 @@ Migration von mod_wsgi Deployment zu Container Deployment
ProxyPass /api uwsgi://localhost:8000/frms
ProxyPass /static uwsgi://localhost:8000/frms/static
~~~
* Wichtig ist, dass /api/admin geschützt ist, per Basic Auth oder Shibboleth z.B.
* Wichtig ist, dass /api/admin geschützt ist, z.B. per Basic Auth oder Shibboleth
* Die bestehende Datenbank kann weitergenutzt werden.
## Beispiel alte Konfigurationsdateien
`/var/www/django/frms/private/settings_private.py` mit folgendem Inhalt:
~~~python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
SECRET_KEY = "XYZ..." #60 Stellen Zufall für Django
DATABASE_PASSWORD = "XXXXX"
~~~
`/var/www/django/frms/private/settings_local.py` mit folgendem Inhalt:
~~~python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from settings_private import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'saxid',
'USER': 'saxid_rw',
'PASSWORD': DATABASE_PASSWORD,
'HOST': 'postgresql-host.hs-mittweida.de',
},
}
# Der Realm vom EPPN der eigenen Nutzer
SERVER_REALM="hs-mittweida.de"
HTTP_SERVER_NAME="https://saxid-api.hs-mittweida.de"
ALLOWED_HOSTS = ["saxid-api.hs-mittweida.de"]
STATIC_URL = '/static/api/'
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.RemoteUserBackend',
]
~~~
## Neue Config
`/etc/frms/django_secret.txt`
~~~
XYZ...
~~~
`/etc/frms/settings_docker.py`
~~~python
SERVER_REALM="hs-mittweida.de"
HTTP_SERVER_NAME="https://saxid-api.hs-mittweida.de"
ALLOWED_HOSTS = ["saxid-api.hs-mittweida.de"]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'saxid',
'USER': 'saxid_rw',
'PASSWORD': 'XXXXX',
'HOST': 'postgresql-host.hs-mittweida.de',
},
}
~~~
# Dieses Compose File wird für Tests genutzt. Es werden 2 Instanzen aus
# jeweils 3 Containern gestartet. Pro Instanz gibt es ein Datenbank-, einen
# Webserver- und einen SaxID API Container.
# Für reine Docker Deployments kann dies zum abgucken genutzt werden.
version: "3"
services:
db1:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment