April 4, 2025
OpenCart Setup in Docker with Postgres
A step-by-step guide to deploying OpenCart using Docker and Docker Compose with PostgreSQL database support.
Overview
This guide demonstrates deploying OpenCart using Docker and Docker Compose with PostgreSQL database support. It's a practical setup for development and testing environments.
Prerequisites
- Docker installation required
- Docker Compose installation required
- Foundational Docker knowledge helpful
Setup Process
Step 1: Project Directory
Create a dedicated folder and navigate into it for your OpenCart deployment:
mkdir opencart-docker && cd opencart-docker
Step 2: Docker Compose Configuration
Generate a docker-compose.yml file with your desired specifications. The compose file should define services for both OpenCart and PostgreSQL.
Step 3: Environment Customization
Modify key variables including:
OPENCART_HOST- Domain or IP addressOPENCART_USERNAME- Administrator credentialsOPENCART_PASSWORD- Administrator credentialsOPENCART_EMAIL- Administrator contactMARIADB_USER- Database access credentialsMARIADB_PASSWORD- Database access credentials
Step 4: Container Launch
docker-compose up -d
This initiates services in background mode.
Step 5: Initialization
Allow 1-2 minutes for complete startup. Monitor via:
docker-compose logs -f opencart
Step 6: Access Points
- Frontend: http://localhost:8080
- Admin panel: http://localhost:8080/admin
Data Persistence
Two named volumes manage data:
opencart_data- Application files and settingspostgres_data- Database information
Operational Commands
| Command | Purpose |
|---|---|
docker-compose down | Shutdown |
docker-compose down -v | Full Reset |
docker-compose pull && docker-compose up -d | Updates |
Production Safeguards
For production deployments, ensure:
- Secure password rotation
- HTTPS configuration
- Automated backup procedures
- Refined network segmentation
Common Issues
Database connectivity failures require container status verification and variable validation. Permission errors may necessitate ownership adjustments. Always inspect logs for diagnostic information.
Written by Shyam Achuthan