1.8 KiB
1.8 KiB
Docker Build & Publish Guide
This guide explains how to package the project into Docker images and push them to a registry.
Prerequisites
- Docker Desktop / Docker Engine
- Network access to the registry
- Registry login credentials
Files you need
These files are required to build and publish:
ems-backend/Dockerfileems-frontend/Dockerfileems-frontend/nginx.confdocker-compose.yml(optional for local test).env(do not publish; keep secrets local)
1) Build images locally
From the project root:
docker build -t <REGISTRY>/<NAME>/ems-backend:latest ./ems-backend
docker build -t <REGISTRY>/<NAME>/ems-frontend:latest --build-arg VITE_API_BASE_URL=/api ./ems-frontend
Examples:
- Docker Hub:
docker build -t <dockerhub_user>/ems-backend:latest ./ems-backend
docker build -t <dockerhub_user>/ems-frontend:latest --build-arg VITE_API_BASE_URL=/api ./ems-frontend
- Private registry:
docker build -t docker.aizhangz.top/ems-backend:latest ./ems-backend
docker build -t docker.aizhangz.top/ems-frontend:latest --build-arg VITE_API_BASE_URL=/api ./ems-frontend
2) Login to registry
docker login <REGISTRY>
Examples:
docker login docker.aizhangz.top
3) Push images
docker push <REGISTRY>/<NAME>/ems-backend:latest
docker push <REGISTRY>/<NAME>/ems-frontend:latest
Examples (private registry):
docker push docker.aizhangz.top/ems-backend:latest
docker push docker.aizhangz.top/ems-frontend:latest
4) Verify
Pull once to confirm:
docker pull <REGISTRY>/<NAME>/ems-backend:latest
docker pull <REGISTRY>/<NAME>/ems-frontend:latest
Notes
- Never commit
.envwith secrets. - If using a public registry, remove sensitive configs from images.
- For local run with images, use
docker-compose.hub.ymlordocker-compose.private.yml.