← Về mục lục
BỘ CÔNG CỤ / TRA CỨU NHANH
Dockerfile & Compose — patterns
Mở nhanh khi làm lab hoặc khi xử lý một vấn đề thường gặp. Có thể in riêng trang này.
Dockerfile tối giản
FROM python:3.13-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app/ ./app/
RUN useradd -u 10001 -r appuser
USER 10001
EXPOSE 8080
CMD ["python", "-m", "app.server"]
Compose có healthcheck và volume
services:
db:
image: postgres:18
volumes: [pgdata:/var/lib/postgresql]
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets: [db_password]
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
retries: 10
volumes:
pgdata:
secrets:
db_password:
file: ./secrets/db_password.txt
Triển khai và debug
docker compose config --quiet
docker compose up -d --build
docker compose ps -a
docker compose logs --tail=100 db
docker compose down # không -v
Lưu ý: Ví dụ này cần điều chỉnh đúng user/DB name, có mật khẩu lab file
và không có application service. PostgreSQL 18 nên mount dữ liệu tại
/var/lib/postgresql.