256ff0814e
Build & Deploy / Build & Push Docker Image (push) Failing after 44s
Build & Deploy / Deploy to VPS (push) Has been skipped
Test / API Unit Tests (push) Failing after 5m0s
Test / Marketplace Unit Tests (push) Failing after 4m51s
Test / Admin Unit Tests (push) Successful in 9m31s
Test / Dashboard Unit Tests (push) Successful in 9m37s
Test / API Integration Tests (push) Successful in 9m54s
- Remove apps/marketplace entirely - Create apps/homepage (port 3000): landing/marketing pages (home, features, pricing, platform-ops, review, legal) - Create apps/storefront (port 3004): vehicle browsing (explore) and renter account (dashboard, profile, notifications) - Duplicate shared components/libs into each app - Update homepage header nav: Home, Features, Pricing instead of Home, Explore - Fix all /explore cross-references in homepage to point to /features - Update docker-compose.dev.yml: new homepage and storefront services, remove marketplace - Update docker-compose.production.yml: split into homepage (main domain) and storefront (path-based routes) - Update Dockerfiles: EXPOSE 3004 instead of 3003 - Update root package.json scripts: homepage/storefront profiles, tests, prod scripts - Add docker-prod-up-homepage.sh and docker-prod-up-storefront.sh, remove marketplace script
250 lines
6.6 KiB
YAML
250 lines
6.6 KiB
YAML
name: rentaldrivego-dev
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: rentaldrivego
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: password
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres -d rentaldrivego"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- postgres_dev_data:/var/lib/postgresql/data
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
restart: unless-stopped
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_dev_data:/data
|
|
|
|
pgadmin:
|
|
image: dpage/pgadmin4:9
|
|
restart: unless-stopped
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
environment:
|
|
PGADMIN_DEFAULT_EMAIL: admin@rentaldrivego.dev
|
|
PGADMIN_DEFAULT_PASSWORD: admin
|
|
PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION: "False"
|
|
PGADMIN_CONFIG_SERVER_MODE: "False"
|
|
ports:
|
|
- "5050:80"
|
|
volumes:
|
|
- pgadmin_dev_data:/var/lib/pgadmin
|
|
- ./docker/pgadmin/servers.json:/pgadmin4/servers.json:ro
|
|
profiles: ["tools"]
|
|
|
|
pgmanage:
|
|
image: cmdpromptinc/pgmanage-enterprise:latest
|
|
restart: unless-stopped
|
|
user: "0:0"
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
environment:
|
|
PGMANAGE_LISTEN_PORT: "8000"
|
|
PGMANAGE_DEFAULT_USERNAME: ${PGMANAGE_DEFAULT_USERNAME:-admin}
|
|
PGMANAGE_DEFAULT_PASSWORD: ${PGMANAGE_DEFAULT_PASSWORD:-admin}
|
|
PGMANAGE_LICENSE_KEY: ${PGMANAGE_LICENSE_KEY:-}
|
|
PGMANAGE_SECURE_COOKIES: ${PGMANAGE_SECURE_COOKIES:-False}
|
|
ports:
|
|
- "8000:8000"
|
|
volumes:
|
|
- pgmanage_dev_data:/appdata
|
|
profiles: ["tools"]
|
|
|
|
migrate:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
env_file:
|
|
- .env.docker.dev
|
|
environment:
|
|
FILE_STORAGE_ROOT: /var/lib/rentaldrivego/storage
|
|
LEGACY_STORAGE_ROOT: /app/apps/api/src/lib/storage
|
|
command: ["sh", "/app/docker/scripts/dev-bootstrap.sh"]
|
|
volumes:
|
|
- .:/app
|
|
- app_node_modules:/app/node_modules
|
|
- postgres_bootstrap_state:/state
|
|
- api_uploads_dev:/var/lib/rentaldrivego/storage
|
|
|
|
types:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
command: ["sh", "-c", "cd /app/packages/types && exec npm run dev"]
|
|
volumes:
|
|
- .:/app
|
|
- app_node_modules:/app/node_modules
|
|
restart: unless-stopped
|
|
profiles: ["api", "homepage", "storefront", "dashboard", "admin", "full"]
|
|
|
|
api:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_started
|
|
migrate:
|
|
condition: service_completed_successfully
|
|
types:
|
|
condition: service_started
|
|
env_file:
|
|
- .env.docker.dev
|
|
environment:
|
|
CHOKIDAR_USEPOLLING: "true"
|
|
CHOKIDAR_INTERVAL: "1000"
|
|
FILE_STORAGE_ROOT: /var/lib/rentaldrivego/storage
|
|
command: ["sh", "-c", "npm run build --workspace @rentaldrivego/types && cd /app/apps/api && exec /app/node_modules/.bin/ts-node-dev --respawn --transpile-only src/index.ts"]
|
|
ports:
|
|
- "4000:4000"
|
|
volumes:
|
|
- .:/app
|
|
- app_node_modules:/app/node_modules
|
|
- api_uploads_dev:/var/lib/rentaldrivego/storage
|
|
restart: unless-stopped
|
|
profiles: ["api", "full"]
|
|
|
|
homepage:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
depends_on:
|
|
- api
|
|
- types
|
|
env_file:
|
|
- .env.docker.dev
|
|
environment:
|
|
CHOKIDAR_USEPOLLING: "true"
|
|
CHOKIDAR_INTERVAL: "1000"
|
|
WATCHPACK_POLLING: "true"
|
|
command:
|
|
[
|
|
"sh",
|
|
"-c",
|
|
"npm run build --workspace @rentaldrivego/types && cd /app/apps/homepage && mkdir -p .next && find .next -mindepth 1 -exec rm -rf {} + && exec env PATH=/app/docker/scripts:$PATH /app/node_modules/.bin/next dev -H 0.0.0.0 -p 3000",
|
|
]
|
|
ports:
|
|
- "3000:3000"
|
|
volumes:
|
|
- .:/app
|
|
- app_node_modules:/app/node_modules
|
|
- homepage_next:/app/apps/homepage/.next
|
|
restart: unless-stopped
|
|
profiles: ["homepage", "full"]
|
|
|
|
storefront:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
depends_on:
|
|
- api
|
|
- types
|
|
env_file:
|
|
- .env.docker.dev
|
|
environment:
|
|
CHOKIDAR_USEPOLLING: "true"
|
|
CHOKIDAR_INTERVAL: "1000"
|
|
WATCHPACK_POLLING: "true"
|
|
command:
|
|
[
|
|
"sh",
|
|
"-c",
|
|
"npm run build --workspace @rentaldrivego/types && cd /app/apps/storefront && mkdir -p .next && find .next -mindepth 1 -exec rm -rf {} + && exec env PATH=/app/docker/scripts:$PATH /app/node_modules/.bin/next dev -H 0.0.0.0 -p 3004",
|
|
]
|
|
ports:
|
|
- "3004:3004"
|
|
volumes:
|
|
- .:/app
|
|
- app_node_modules:/app/node_modules
|
|
- storefront_next:/app/apps/storefront/.next
|
|
restart: unless-stopped
|
|
profiles: ["storefront", "full"]
|
|
|
|
dashboard:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
depends_on:
|
|
- api
|
|
- types
|
|
env_file:
|
|
- .env.docker.dev
|
|
environment:
|
|
CHOKIDAR_USEPOLLING: "true"
|
|
CHOKIDAR_INTERVAL: "1000"
|
|
WATCHPACK_POLLING: "true"
|
|
command:
|
|
[
|
|
"sh",
|
|
"-c",
|
|
"npm run build --workspace @rentaldrivego/types && cd /app/apps/dashboard && mkdir -p .next && find .next -mindepth 1 -exec rm -rf {} + && exec env PATH=/app/docker/scripts:$PATH /app/node_modules/.bin/next dev -H 0.0.0.0 -p 3001",
|
|
]
|
|
ports:
|
|
- "3001:3001"
|
|
volumes:
|
|
- .:/app
|
|
- app_node_modules:/app/node_modules
|
|
- dashboard_next:/app/apps/dashboard/.next
|
|
restart: unless-stopped
|
|
profiles: ["dashboard", "full"]
|
|
|
|
admin:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
depends_on:
|
|
- api
|
|
- types
|
|
env_file:
|
|
- .env.docker.dev
|
|
environment:
|
|
ADMIN_ASSET_PREFIX: "http://localhost:3002"
|
|
CHOKIDAR_USEPOLLING: "true"
|
|
CHOKIDAR_INTERVAL: "1000"
|
|
WATCHPACK_POLLING: "true"
|
|
command:
|
|
[
|
|
"sh",
|
|
"-c",
|
|
"npm run build --workspace @rentaldrivego/types && cd /app/apps/admin && mkdir -p .next && find .next -mindepth 1 -exec rm -rf {} + && exec env PATH=/app/docker/scripts:$PATH /app/node_modules/.bin/next dev -H 0.0.0.0 -p 3002",
|
|
]
|
|
ports:
|
|
- "3002:3002"
|
|
volumes:
|
|
- .:/app
|
|
- app_node_modules:/app/node_modules
|
|
- admin_next:/app/apps/admin/.next
|
|
restart: unless-stopped
|
|
profiles: ["admin", "full"]
|
|
|
|
volumes:
|
|
postgres_dev_data:
|
|
redis_dev_data:
|
|
pgadmin_dev_data:
|
|
pgmanage_dev_data:
|
|
app_node_modules:
|
|
postgres_bootstrap_state:
|
|
api_uploads_dev:
|
|
homepage_next:
|
|
storefront_next:
|
|
dashboard_next:
|
|
admin_next:
|