# Docker
* optimizes configuration * removes unused settings * extends README.md with docker installation guid
This commit is contained in:
		
							parent
							
								
									4027629996
								
							
						
					
					
						commit
						44033c18fe
					
				
							
								
								
									
										45
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								README.md
									
									
									
									
									
								
							@ -4,6 +4,7 @@ the database postgresql and the css library bootstrap as well as the icon packag
 | 
			
		||||
fontawesome for a modern look, following best practices from the industry.
 | 
			
		||||
 | 
			
		||||
## Background processes
 | 
			
		||||
### !!! For non-docker run
 | 
			
		||||
Konova uses celery for background processing. To start the worker you need to run
 | 
			
		||||
```shell
 | 
			
		||||
$ celery -A konova worker -l INFO
 | 
			
		||||
@ -18,3 +19,47 @@ Technical documention is provided in the projects git wiki.
 | 
			
		||||
A user documentation is not available (and not needed, yet). 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Docker 
 | 
			
		||||
To run the docker-compose as expected, you need to take the following steps:
 | 
			
		||||
 | 
			
		||||
1. Create a database containing docker, using an appropriate Dockerfile, e.g. the following
 | 
			
		||||
```
 | 
			
		||||
version: '3.3'
 | 
			
		||||
services:
 | 
			
		||||
  postgis:
 | 
			
		||||
    image: postgis/postgis
 | 
			
		||||
    restart: always
 | 
			
		||||
    container_name: postgis-docker
 | 
			
		||||
    ports: 
 | 
			
		||||
      - 5433:5432
 | 
			
		||||
    volumes:
 | 
			
		||||
      - db-volume:/var/lib/postgresql/data
 | 
			
		||||
    environment:
 | 
			
		||||
      - POSTGRES_PASSWORD=postgres
 | 
			
		||||
      - POSTGRES_USER=postgres
 | 
			
		||||
    networks:
 | 
			
		||||
      - db-network-bridge
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  db-network-bridge:
 | 
			
		||||
    driver: "bridge"
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
  db-volume:
 | 
			
		||||
```
 | 
			
		||||
This Dockerfile creates a Docker container running postgresql and postgis, creates the default superuser postgres, 
 | 
			
		||||
creates a named volume for persisting the database and creates a new network bridge, which **must be used by any other
 | 
			
		||||
container, which wants to write/read on this database**. 
 | 
			
		||||
 | 
			
		||||
2. Make sure the name of the network bridge above matches the network in the konova docker-compose.yml  
 | 
			
		||||
3. Get into the running postgis container (`docker exec -it postgis-docker bash`) and create new databases, users and so on. Make sure the database `konova` exists now!
 | 
			
		||||
4. Replace all `CHANGE_ME_xy` values inside of konova/docker-compose.yml for your installation. Make sure the `SSO_HOST` holds the proper SSO host, e.g. for the arnova project `arnova.example.org` (Arnova must be installed and the webserver configured as well, of course)
 | 
			
		||||
5. Take a look on konova/settings.py and konova/sub_settings/django_settings.py. Again: Replace all occurences of `CHANGE_ME` with proper values for your installation.
 | 
			
		||||
   1. Make sure you have the proper host strings added to `ALLOWED_HOSTS` inside of django_settings.py.  
 | 
			
		||||
6. Build and run the docker setup using `docker-compose build` and `docker-compose start` from the main directory of this project (where the docker-compose.yml lives)
 | 
			
		||||
7. Run migrations! To do so, get into the konova service container (`docker exec -it konova-docker bash`) and run the needed commands (`python manage.py makemigrations LIST_OF_ALL_MIGRATABLE_APPS`, then `python manage.py migrate`)
 | 
			
		||||
8. Run the setup command `python manage.py setup` and follow the instructions on the CLI
 | 
			
		||||
9. To enable **SMTP** mail support, make sure your host machine (the one where the docker container run) has the postfix service configured properly. Make sure the `mynetworks` variable is extending using the docker network bridge ip, created in the postgis container and used by the konova services.
 | 
			
		||||
   1. **Hint**: You can find out this easily by trying to perform a test mail in the running konova web application (which will fail, of course). Then take a look to the latest entries in `/var/log/mail.log` on your host machine. The failed IP will be displayed there.
 | 
			
		||||
   2. **Please note**: This installation guide is based on SMTP using postfix! 
 | 
			
		||||
   3. Restart the postfix service on your host machine to reload the new configuration (`service postfix restart`)
 | 
			
		||||
@ -32,6 +32,9 @@ services:
 | 
			
		||||
      - POSTGRES_HOST=db
 | 
			
		||||
      - REDIS_HOST=redis
 | 
			
		||||
      - SSO_HOST=CHANGE_ME_TO_SSO_HOST_URL
 | 
			
		||||
      - SMTP_HOST=172.17.0.1
 | 
			
		||||
      - SMTP_PORT=25
 | 
			
		||||
      - SMTP_REAL_REPLY_MAIL=ksp-servicestelle@sgdnord.rlp.de
 | 
			
		||||
 | 
			
		||||
# To provide a celery worker instance, we need to add the celery worker as an own service
 | 
			
		||||
  celery_worker:
 | 
			
		||||
@ -54,6 +57,9 @@ services:
 | 
			
		||||
      - POSTGRES_HOST=db
 | 
			
		||||
      - REDIS_HOST=redis
 | 
			
		||||
      - SSO_HOST=CHANGE_ME_TO_SSO_HOST_URL
 | 
			
		||||
      - SMTP_HOST=172.17.0.1
 | 
			
		||||
      - SMTP_PORT=25
 | 
			
		||||
      - SMTP_REAL_REPLY_MAIL=ksp-servicestelle@sgdnord.rlp.de
 | 
			
		||||
 | 
			
		||||
  nginx:
 | 
			
		||||
    build: ./nginx
 | 
			
		||||
 | 
			
		||||
@ -205,19 +205,15 @@ DEBUG_TOOLBAR_CONFIG = {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# EMAIL (see https://docs.djangoproject.com/en/dev/topics/email/)
 | 
			
		||||
if DEBUG:
 | 
			
		||||
    # ONLY FOR DEVELOPMENT NEEDED
 | 
			
		||||
    EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
 | 
			
		||||
    EMAIL_FILE_PATH = '/tmp/app-messages'
 | 
			
		||||
 | 
			
		||||
# CHANGE_ME !!! ONLY FOR DEVELOPMENT !!!
 | 
			
		||||
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
 | 
			
		||||
EMAIL_FILE_PATH = '/tmp/app-messages' # change this to a proper location
 | 
			
		||||
 | 
			
		||||
DEFAULT_FROM_EMAIL = "service@ksp.de"  # The default email address for the 'from' element
 | 
			
		||||
EMAIL_HOST = "localhost"
 | 
			
		||||
EMAIL_REPLY_TO = "ksp-servicestelle@sgdnord.rlp.de"
 | 
			
		||||
EMAIL_PORT = "25"
 | 
			
		||||
#EMAIL_HOST_USER = ""
 | 
			
		||||
#EMAIL_HOST_PASSWORD = ""
 | 
			
		||||
EMAIL_USE_TLS = False
 | 
			
		||||
EMAIL_USE_SSL = False
 | 
			
		||||
DEFAULT_FROM_EMAIL = "no-reply@ksp.de"  # The default email address for the 'from' element
 | 
			
		||||
EMAIL_HOST = os.environ.get('SMTP_HOST'),
 | 
			
		||||
EMAIL_REPLY_TO = os.environ.get('SMTP_REAL_REPLY_MAIL')
 | 
			
		||||
EMAIL_PORT = os.environ.get('SMTP_PORT'),
 | 
			
		||||
 | 
			
		||||
# LOGGING
 | 
			
		||||
BASIC_LOGGER = "logger"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user