Files
hedena_gold/DOCKER.md
T

51 lines
1.3 KiB
Markdown

# Docker — copy-only deploy (Dokploy)
Build artifacts are produced **on the developer machine** and committed to git.
Dokploy only builds thin images that copy those files (no `pnpm install` on the server).
## One-time / before each deploy
```bash
pnpm install
pnpm build:release
git add apps/api/release apps/admin-panel/dist apps/user-app/dist
git commit -m "chore: refresh release artifacts"
git push
```
What this produces:
| App | Artifact | Image |
|---|---|---|
| API | `apps/api/release/app.js` (+ Prisma under `release/vendor`) | `docker.arvancloud.ir/node:20-bookworm` |
| Admin | `apps/admin-panel/dist/` | `docker.arvancloud.ir/nginx:latest` |
| User | `apps/user-app/dist/` | `docker.arvancloud.ir/nginx:latest` |
## Dokploy Environment
```env
POSTGRES_USER=goldbank
POSTGRES_PASSWORD=...
POSTGRES_DB=goldbank
EXTERNAL_DB_PORT=5433
DATABASE_URL=postgresql://goldbank:...@db:5432/goldbank?schema=public
PORT=3000
```
## Domains (container ports)
| Service | Domain | Port |
|---|---|---|
| `admin-panel` | admin.example.com | **80** |
| `user-app` | app.example.com | **80** |
| `api` | (optional) | **3000** |
Frontends call `/api` on their own domain; nginx proxies to `api:3000`.
## Local compose smoke test
```bash
pnpm build:release
docker compose up --build -d
```