Skip to content

Latest commit

 

History

History
71 lines (54 loc) · 1.21 KB

File metadata and controls

71 lines (54 loc) · 1.21 KB

8.1 Docker容器技术

📍 导航返回目录 | 下一节:Kubernetes


Dockerfile最佳实践

# 多阶段构建
FROM golang:1.21 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main .

# 最小化镜像
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["./main"]

Docker Compose

version: '3.8'
services:
  app:
    build: .
    ports:
      - "8080:8080"
    environment:
      - DB_HOST=postgres
    depends_on:
      - postgres
      - redis
  
  postgres:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - postgres_data:/var/lib/postgresql/data
  
  redis:
    image: redis:7-alpine

volumes:
  postgres_data:

本章小结

关键要点

  • ✅ 多阶段构建减小镜像
  • ✅ Docker Compose本地开发
  • ✅ 镜像分层缓存
  • ✅ 安全扫描

⏮️ 返回目录 | ⏭️ 下一节:Kubernetes