Docker Setup and Deployment
This guide explains how to set up and deploy the JudaicaLink projects using Docker and Docker Compose. This setup allows you to run all services in isolated containers for easy deployment and management.
System Requirements
Ensure your system has the following installed:
Docker: Latest version (Docker Installation Guide)
Docker Compose: Latest version (Docker Compose Installation Guide)
Cloning the Repository
First, clone the main Docker repository for JudaicaLink:
git clone https://github.com/judaicalink/docker.git
cd docker
Setting Up the Environment
Create an .env file to store environment variables:
cp .env.example .env
nano .env
Modify the variables to match your setup, including database credentials and service configurations.
Running Docker Containers
Build and start containers:
docker-compose up -d --build
Check running containers:
docker ps
View logs for troubleshooting:
docker-compose logs -f
Services Included in Docker Compose
The docker-compose.yml file includes the following services:
Django Application (JudaicaLink Labs & Pubby)
PostgreSQL (Database backend for Django)
Solr (Full-text search engine)
Redis (Caching layer for Django)
Apache Jena Fuseki (SPARQL endpoint)
Nginx (Reverse proxy for serving the application)
Managing Docker Containers
Stop all running containers:
docker-compose down
Restart containers:
docker-compose restart
Rebuild containers after making changes:
docker-compose up -d --build
Interacting with Services
Running Database Migrations
To apply Django migrations inside the container:
docker-compose exec web python manage.py migrate
Collecting Static Files
To collect static files for Django:
docker-compose exec web python manage.py collectstatic --noinput
Running a Bash Shell inside a Container
To open a shell inside the Django container:
docker-compose exec web bash
Running Solr in Docker
To access the Solr admin panel:
URL: http://localhost:8983/solr
To create a new Solr core:
docker-compose exec solr solr create -c judaicalink
Running Apache Jena Fuseki in Docker
To access Fuseki’s web interface:
URL: http://localhost:3030
To load RDF data into Fuseki:
curl -X POST --data-binary @data.rdf -H "Content-Type: application/rdf+xml" http://localhost:3030/ds/data
Running Nginx in Docker
Nginx serves as a reverse proxy for the Django application. To reload Nginx:
docker-compose exec nginx nginx -s reload
Verifying the Setup
After deployment, verify the services are running correctly:
Django Application: http://localhost
SPARQL Endpoint (Fuseki): http://localhost:3030/ds
Solr Admin UI: http://localhost:8983/solr
Redis Status:
docker-compose exec redis redis-cli ping
Troubleshooting & Support
Container not starting? Check logs with docker-compose logs -f
Database connection errors? Ensure PostgreSQL is running inside the container
Application not accessible? Verify Nginx settings and restart services
Need help? Contact us at https://labs.judaicalink.org/contact/
— Using Docker makes it easy to deploy and manage JudaicaLink services. 🚀