Files
HaitiData/deployment/docker-compose.yml
T
Irwan Fathurrahman 69927442ca Geonode architecture
* update fixture region

* update geoserver and geonode in one container

* clean code

* update prod setting to receive PROXY_ALLOWED_HOSTS

* update architecture to be like geonode

* update DATABASE setting

* update DATABASE setting

* update DATABASE setting

* update DATABASE setting

* update settings

* clean code

* update setting to access /geoserver without /api/geoserver

* clean code

* clean code

* Use uwsgi rather than development server.

* clean code

* update compose and docker file of geoserver
2017-10-11 11:40:22 +07:00

169 lines
4.7 KiB
YAML

version: '2.2'
services:
postgres:
# Note you cannot scale if you use conteiner_name
container_name: haitidata-postgres
image: kartoza/postgis:9.4-2.1
volumes:
- ./pg/postgres_data:/var/lib/postgresql
environment:
- USERNAME=docker
- PASS=docker
- POSTGRES_USER=docker
- POSTGRES_PASS=docker
restart: on-failure
network_mode: "bridge"
elasticsearch:
container_name: haitidata-elasticsearch
image: elasticsearch
network_mode: "bridge"
rabbitmq:
container_name: haitidata-rabbitmq
image: rabbitmq
network_mode: "bridge"
django:
container_name: haitidata-django
build: ./docker
links:
- postgres
- elasticsearch
- rabbitmq
- geoserver
volumes:
- ../django_project:/home/web/django_project
- ./static:/home/web/static
- ./media:/home/web/media
- ./logs:/var/log/
environment:
- DATABASE_URL=postgres://postgres:postgres@postgres:5432/postgres
- DATABASE_NAME=gis
- DATABASE_USERNAME=docker
- DATABASE_PASSWORD=docker
- DATABASE_HOST=postgres
- RABBITMQ_HOST=rabbitmq
- DJANGO_SETTINGS_MODULE=core.settings.prod_docker
- VIRTUAL_HOST=haitidata.com
- VIRTUAL_PORT=8080
- PROXY_ALLOWED_HOSTS=192.168.1.6
# Ensure to change these based on server domain
- SITEURL=http://192.168.1.6:33300/ # change this to ip or domain location
- GEOSERVER_BASE_URL=http://192.168.1.6:33308/geoserver/ # change this to ip or domain geoserver
# Set your locale - you need to ensure this is created in Dockerfile too...
- LC_ALL=en_US.UTF-8
restart: always
network_mode: "bridge"
# This is the entry point for a development server.
# Run with --no-deps to run attached to the services
# from produ environment if wanted
devweb:
# Note you cannot scale if you use conteiner_name
container_name: haitidata-dev-web
build:
context: ./docker
dockerfile: Dockerfile-dev
hostname: haitidata-dev-web
environment:
- DJANGO_SETTINGS_MODULE=core.settings.prod_docker
volumes:
- ../django_project:/home/web/django_project
- ./static:/home/web/static
- ./media:/home/web/media
- ./reports:/home/web/reports
- ./logs:/var/log/
links:
- postgres
- elasticsearch
- rabbitmq
- geoserver
ports:
# for django test server
- "33303:8080"
# for ssh
- "33302:22"
network_mode: "bridge"
celery:
container_name: haitidata-celery
image: geonode/django
links:
- rabbitmq
- postgres
- elasticsearch
command: celery worker --app=geonode.celery_app:app -B -l INFO
environment:
- DATABASE_URL=postgres://postgres:postgres@postgres:5432/postgres
- DATABASE_NAME=gis
- DATABASE_USERNAME=docker
- DATABASE_PASSWORD=docker
- DATABASE_HOST=postgres
- RABBITMQ_HOST=rabbitmq
- DJANGO_SETTINGS_MODULE=core.settings.prod_docker
- VIRTUAL_HOST=haitidata.com
- VIRTUAL_PORT=8080
- PROXY_ALLOWED_HOSTS=192.168.1.6
# Ensure to change these based on server domain
- SITEURL=http://192.168.1.6:33300/ # change this to ip or domain location
- GEOSERVER_BASE_URL=http://192.168.1.6:33308/geoserver/ # change this to ip or domain geoserver
# Set your locale - you need to ensure this is created in Dockerfile too...
- LC_ALL=en_US.UTF-8
network_mode: "bridge"
geoserver:
container_name: haitidata-geoserver
build: ./docker-geoserver
links:
- postgres
ports:
- "33308:8080"
volumes_from:
- data_dir_conf
environment:
- DOCKER_HOST
- PUBLIC_PORT=80
- DOCKER_HOST_IP
- DJANGO_URL=http://django:8000/
- SITEURL=http://192.168.1.6/
- GEOSERVER_BASE_URL=http://192.168.1.6:33308/geoserver/
network_mode: "bridge"
geonode:
# Note you cannot scale if you use conteiner_name
container_name: haitidata-geonode
image: nginx
hostname: nginx
volumes:
- ./sites-enabled:/etc/nginx/conf.d:ro
# I dont use volumes_from as I want to use the ro modifier
- ./static:/home/web/static:ro
- ./media:/home/web/media:ro
- ./logs:/var/log/nginx
# - /etc/letsencrypt:/etc/letsencrypt
- ./webroot-path:/home/web/webroot-path
links:
- django
- geoserver
ports:
- "33300:8080"
restart: always
network_mode: "bridge"
data_dir_conf:
container_name: haitidata-data
image: geonode/geoserver_data:2.10.x
container_name: geoserver_data_dir
command: /bin/true
volumes:
- /geoserver_data/data
network_mode: "bridge"
volumes:
geoserver_data_dir: