</>
⌕
Mid #env#secrets#security#build-arg

Quản lý biến môi trường và secret trong Docker

⚡ Trả lời nhanh

Cấu hình không nhạy cảm truyền qua ENV hoặc --env-file lúc chạy. Secret không được ghi vào Dockerfile (ENV/ARG) vì lưu trong layer và docker history. Dùng Docker/Compose secrets (mount file), BuildKit --mount=type=secret khi build, hoặc secret manager của orchestrator.

docker run --env-file .env -e LOG_LEVEL=info myapp
# SAI: nằm vĩnh viễn trong layer
ENV API_KEY=abc123

# Đúng: secret chỉ tồn tại trong bước build, không vào image
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc npm ci
docker build --secret id=npmrc,src=$HOME/.npmrc .
services:
  api:
    secrets: [db_password]     # có tại /run/secrets/db_password
secrets:
  db_password:
    file: ./db_password.txt
🃏 Ôn bằng flashcard