在 Debian 上实施容器化部署的实用指南
一 环境准备与 Docker 安装
二 构建镜像与 Docker Compose
FROM debian:bookworm-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates curl build-essential && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY . .
# 示例构建步骤(可按需替换)
# RUN make && make install
CMD ["./your-app"]
version: "3.8"
services:
web:
build: .
ports:
- "8080:8080"
environment:
- ENV=prod
db:
image: postgres:15-alpine
environment:
POSTGRES_PASSWORD: example
volumes:
- pg-data:/var/lib/postgresql/data
volumes:
pg-data:
三 生产级配置与运维要点
{
"storage-driver": "overlay2",
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
修改后执行:sudo systemctl daemon-reload && sudo systemctl restart docker四 自动化交付与扩展
stages:
- build
- test
- deploy
build:
stage: build
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
test:
stage: test
script:
- docker run --rm $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA /bin/sh -c "your-test-cmd"
deploy:
stage: deploy
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
# 在目标主机执行滚动更新或拉取并重启