Commit 6c61cf17 authored by Vũ Hoàng Anh's avatar Vũ Hoàng Anh

Add Dockerfile.dev for local development with hot reload

- Dockerfile.dev: Development environment with hot reload & cache mount
- Add Makefile targets: build-dev, run-dev for easy local testing
- Hot reload watches agent, api, common directories
- Includes health check endpoint

Usage:
  make build-dev  # Build dev image
  make run-dev    # Run container with volume mount for hot reload
parent 333a9b7d
# ============================================================
# DOCKERFILE.DEV - Local Development (Hot Reload + Cache)
# ============================================================
# Sử dụng Python 3.11 Slim để tối ưu dung lượng
FROM python:3.11-slim
# Thiết lập thư mục làm việc
WORKDIR /app
# Thiết lập biến môi trường
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV ENV=development
# Copy requirements.txt trước để tận dụng Docker cache
COPY requirements.txt .
# Cài đặt thư viện Python (với cache mount cho tốc độ)
RUN --mount=type=cache,target=/root/.cache/pip \
pip install -r requirements.txt
# Copy toàn bộ source code vào image
COPY . .
# Expose port 5000
EXPOSE 5000
# Health check (optional)
HEALTHCHECK --interval=10s --timeout=5s --start-period=5s --retries=2 \
CMD python -c "import requests; requests.get('http://localhost:5000/docs')" || exit 1
# Lệnh chạy server với hot reload
# ⚡ Hot reload - tự động restart khi code thay đổi (cho local dev)
CMD ["uvicorn", "server:app", "--host", "0.0.0.0", "--port", "5000", "--reload", "--reload-dirs", "agent,api,common"]
# Makefile cho CANIFA Chatbot # Makefile cho CANIFA Chatbot
.PHONY: up down restart logs build ps clean setup-nginx monitor-up monitor-down .PHONY: up down restart logs build ps clean setup-nginx monitor-up monitor-down build-dev run-dev
up: up:
sudo docker compose up -d --build sudo docker compose up -d --build
...@@ -20,6 +20,12 @@ ps: ...@@ -20,6 +20,12 @@ ps:
build: build:
docker-compose build docker-compose build
build-dev:
docker build -f Dockerfile.dev -t canifa-backend:dev .
run-dev:
docker run -it --rm -v $(PWD):/app -p 5000:5000 canifa-backend:dev
clean: clean:
docker-compose down -v --rmi all --remove-orphans docker-compose down -v --rmi all --remove-orphans
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment