simplelogin/app-ci本镜像为通过CI(持续集成)流程自动构建的Docker镜像,旨在替代传统手动构建方式,实现Docker镜像构建的自动化、标准化与流程化。其核心用途是集成至CI/CD流水线中,作为自动化构建环节的产物,确保每次镜像构建过程可追溯、环境一致,并提升团队开发与部署效率。
.github/workflows/docker-build.yml、.gitlab-ci.yml等)执行构建,确保每次构建的依赖、参数与步骤完全一致在项目根目录创建.github/workflows/docker-build.yml,配置自动构建流程:
yamlname: Auto Build Docker Image on: push: branches: [ main, develop ] # 触发分支 tags: [ 'v*' ] # 标签触发(如v1.0.0) pull_request: branches: [ main ] # PR触发(可选) jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Registry uses: docker/login-action@v3 with: registry: ${{ secrets.DOCKER_REGISTRY }} # 镜像仓库地址(如[***] username: ${{ secrets.DOCKER_USERNAME }} # 仓库用户名 password: ${{ secrets.DOCKER_PASSWORD }} # 仓库密码/令牌 - name: Extract metadata id: meta uses: docker/metadata-action@v5 with: images: ${{ secrets.DOCKER_REGISTRY }}/${{ github.repository }} # 镜像完整名称 tags: | type=ref,event=branch type=sha,format=short type=semver,pattern={{version}},event=tag - name: Build and push uses: docker/build-push-action@v5 with: context: . push: true tags: ${{ steps.meta.outputs.tags }} cache-from: type=gha cache-to: type=gha,mode=max
在CI配置中通常需定义以下环境变量(以密钥形式存储于CI平台):
| 变量名 | 说明 | 示例值 |
|---|---|---|
DOCKER_REGISTRY | Docker镜像仓库地址(私有或公共) | [***] |
DOCKER_USERNAME | 镜像仓库登录用户名 | my-registry-user |
DOCKER_PASSWORD | 镜像仓库登录密码或访问令牌 | ghp_xxx(GitHub令牌) |
IMAGE_NAME | 镜像名称(不含仓库地址) | my-app |
DEFAULT_TAG | 默认标签(如未指定则使用此值) | latest |
构建完成后,可通过以下方式拉取并使用镜像:
bash# 拉取镜像(需先登录仓库) docker pull ${DOCKER_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} # 运行镜像(根据镜像功能调整命令) docker run -d --name my-app ${DOCKER_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
type=gha缓存)以加速构建manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务