docker-ckan/docker-compose.yml

102 lines
2.4 KiB
YAML
Executable File

version: "3"
volumes:
ckan_storage:
pg_data:
solr_data:
services:
nginx:
container_name: ${NGINX_CONTAINER_NAME}
build:
context: nginx/
dockerfile: Dockerfile
networks:
- frontend
- backend
depends_on:
ckan:
condition: service_healthy
ports:
- "0.0.0.0:${NGINX_PORT_HOST}:${NGINX_PORT}"
- "0.0.0.0:${NGINX_SSLPORT_HOST}:${NGINX_SSLPORT}"
ckan:
container_name: ${CKAN_CONTAINER_NAME}
build:
context: ckan/
dockerfile: Dockerfile
args:
- TZ=${TZ}
networks:
- backend
env_file:
- .env
depends_on:
db:
condition: service_healthy
solr:
condition: service_healthy
redis:
condition: service_healthy
volumes:
- ckan_storage:/var/lib/ckan
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO", "/dev/null", "http://localhost:5000"]
datapusher:
container_name: ${DATAPUSHER_CONTAINER_NAME}
networks:
- backend
image: ckan/ckan-base-datapusher:${DATAPUSHER_VERSION}
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO", "/dev/null", "http://localhost:8800"]
db:
container_name: ${POSTGRESQL_CONTAINER_NAME}
build:
context: postgresql/
args:
- DATASTORE_READONLY_PASSWORD=${DATASTORE_READONLY_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- CKAN_DB_PASSWORD=${CKAN_DB_PASSWORD}
networks:
- backend
environment:
- DATASTORE_READONLY_PASSWORD=${DATASTORE_READONLY_PASSWORD}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- CKAN_DB_PASSWORD=${CKAN_DB_PASSWORD}
- PGDATA=/var/lib/postgresql/data/db
volumes:
- pg_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD", "pg_isready", "-U", "admindbuser", "-d", "admindb"]
solr:
container_name: ${SOLR_CONTAINER_NAME}
networks:
- backend
image: ckan/ckan-solr:${SOLR_IMAGE_VERSION}
volumes:
- solr_data:/var/solr
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-qO", "/dev/null", "http://localhost:8983/solr/"]
redis:
container_name: ${REDIS_CONTAINER_NAME}
networks:
- backend
image: redis:${REDIS_VERSION}
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "-e", "QUIT"]
networks:
frontend:
backend: