A dockerized development environment for the Biruni application with auto-update capability.
- Docker and Docker Compose installed on your system
- GitHub account with access to the Biruni repository
- Access to the Oracle database
Clone this repository into your projects folder where GWS projects are stored:
git clone git@github.com:Bayramooov/smartup-setup.git biruni-dev-docker
cd biruni-dev-docker
Generate a GitHub Personal Access Token (PAT) with read:packages
permission:
- Go to GitHub → Settings → Developer settings → Personal access tokens
- Generate new token with
read:packages
scope
Create your environment file:
cp sample.env .env
# Edit .env and add your GitHub credentials
source .env && echo "${GITHUB_TOKEN}" | docker login ghcr.io -u "${GITHUB_USER}" --password-stdin
cp sample.application.properties application.properties
# Edit application.properties with your database credentials and settings
docker compose up -d && docker compose logs -f
Press Ctrl+C
to stop following logs. The containers will continue running in the background.
- Application: http://localhost:8080
- Projects: Mounted from
../../projects
(configurable in .env)
- Auto-updates: Watchtower checks for new images every 5 minutes
- Hot-reload: Project files are mounted as read-only volumes
- Isolated environment: Runs in Docker with all dependencies included
# Stop all services
docker compose down
# View logs
docker compose logs -f biruni
# Restart services
docker compose restart
# Update manually
docker compose pull && docker compose up -d
# Check service status
docker compose ps
- Port 8080 already in use: Stop other services or change the port in compose.yaml
- Authentication failed: Regenerate your GitHub token and ensure it has
read:packages
permission - Database connection issues: Verify your database credentials and network connectivity
- Container not updating: Check Watchtower logs:
docker compose logs watchtower