-
Notifications
You must be signed in to change notification settings - Fork 2
Docker
This document provides instructions on how to set up and run the infrastructure services supporting local development using Docker Compose. The services included are PostgreSQL, Oracle Database, and the automated Flyway migration service.
Before starting, ensure you have one of the following container runtimes installed on your machine:
- Docker Desktop (macOS / Windows / Linux)
-
Podman and
podman-compose
The root docker-compose.yml file defines three foundational infrastructure services:
-
Container:
database -
Port:
5432 -
Default Credentials:
user: postgres,password: default,database: postgres -
Context: Built from
database/Dockerfilebased onpostgres:13.23. -
Health Check: Utilizes
pg_isready -U postgresto verify readiness. -
Data Persistence: Mounts
/pgdatavolume to persist state across container restarts.
-
Container:
oracle -
Port:
1521 -
Image:
gvenzl/oracle-free:23.9-full-faststart -
Credentials:
user: THE,password: default,service: FREEPDB1 -
Health Check: Uses containerized
healthcheck.sh.
-
Container:
flyway -
Image:
flyway/flyway -
Action: Connects to the healthy Oracle database via JDBC (
jdbc:oracle:thin:@legacydb:1521/FREEPDB1) and executes all SQL migration scripts mounted fromlegacy/src/test/resources/db/migration. - Execution: Runs once upon startup and automatically shuts down once migrations finish.
Run the following command from the root of the repository:
docker compose up -d database legacydb legacyflyway(If using Podman, execute podman-compose up -d database legacydb legacyflyway)
To check container health and progress:
docker compose ps
docker compose logs -f legacyflywayDocker Compose automatically loads environment variables from a .env file located in the root directory. You can specify custom ports or resource limits without modifying docker-compose.yml:
POSTGRES_PORT=5432
ORACLE_PORT=1521For machine-specific volume mounts or port mappings, create a docker-compose.override.yml file in the root directory. Docker Compose merges this file automatically:
services:
database:
ports:
- "5433:5432" # Example: remap PostgreSQL port if 5432 is in use locallyNote
Both .env and docker-compose.override.yml are included in .gitignore to prevent committing developer-specific configurations or credentials.
This wiki serves as the central documentation and knowledge base for the Forests Client Management System, maintained by the British Columbia Ministry of Forests.
Please Note:
- This wiki is a living document maintained by the development team and contributors.
- When making substantial architectural or code changes, remember to update the corresponding wiki documentation.
- Always verify critical environment configurations against team vaults and OpenShift secret managers.
Have questions, found a documentation discrepancy, or need clarification?
- Questions or Bug Reports: Open an issue in the GitHub repository
- Pull Requests: Submit code or doc improvements via Pull Requests
- Database Schema Reference: Explore our SchemaSpy ER Diagrams
Forest Client Wiki | GitHub Repository
- Architecture Overview
- Frontend Architecture
- Frontend Structure
- Backend Architecture
- Backend Structure
- Legacy Architecture
- Processor Architecture
- Data Model
- Development Overview
- Local Setup & Docker
- Frontend Setup
- Backend Setup
- Project Conventions
- Frontend Structure Guidelines