mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 04:14:38 +00:00
Add security note
This commit is contained in:
@@ -58,8 +58,7 @@ build_image:
|
||||
services:
|
||||
- docker:20.10.16-dind
|
||||
script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD \
|
||||
$CI_REGISTRY
|
||||
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
|
||||
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
|
||||
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
|
||||
|
||||
@@ -81,4 +80,10 @@ deploy_staging:
|
||||
|
||||
1. **不可变基础设施**:一旦镜像构建完成,在各个环境(Dev、Staging、Prod)中都应该使用同一个镜像 tag(通常是 commit hash),而不是重新构建。
|
||||
2. **配置分离**:使用 ConfigMap 和 Secret 管理环境特定的配置,不要打包进镜像。
|
||||
3. **GitOps**:考虑引入 ArgoCD,将部署配置也作为代码存储在 Git 中,实现 Git 驱动的部署同步。
|
||||
3. **应对 Docker Hub 限额 (Rate Limits)**:
|
||||
- Docker Hub 对匿名拉取实施了严格的限制 (6小时内约100次)。若在 CI/CD 中频繁构建,极易触发 `toomanyrequests` 错误。
|
||||
- **最佳策略**:
|
||||
- 在流水线开头始终执行安全的身份认证 (使用 PAT,而非密码)。
|
||||
- 将常用的基础镜像缓存到自建的 Harbor/Nexus,使用 Pull-Through Cache。
|
||||
- 开启 Docker 构建引擎 (BuildKit) 的 inline 或 registry 缓存功能,以降低全量拉取频率。
|
||||
4. **GitOps**:考虑引入 ArgoCD,将部署配置也作为代码存储在 Git 中,实现 Git 驱动的部署同步。
|
||||
|
||||
Reference in New Issue
Block a user