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: