前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

把手把手带你基于Github Actions构建docker镜像部署到腾讯云私有仓库

首页
2026-01-15 14:40:12
DevOps
DockerGitHub Actions腾讯云CI/CD容器化部署

在实际项目中,你是否每次发布都需要手动登录服务器执行一系列繁琐的操作?手动构建镜像、手动登录仓库、手动拉取镜像、手动启动容器…这些重复性工作不仅耗时,还容易因为人为疏忽导致部署失败。

本文将以部署Next.js应用为例,手把手教你搭建完整的CI/CD流水线:通过GitHub Actions实现代码推送后自动构建Docker镜像,一键推送到腾讯云私有仓库,并在服务器上自动完成部署。整个过程完全自动化,开发者只需专注代码开发,部署全部由流水线自动完成。

# 准备工作

在开始配置之前,你需要准备以下内容:

  1. GitHub仓库:用于托管代码和配置Actions工作流
  2. 腾讯云账号:需要开通容器镜像服务TCR
  3. 服务器:用于运行Docker容器(需安装Docker)

# GitHub Actions工作流配置

# 创建工作流文件

在GitHub仓库的.github/workflows目录下创建build-docker.yml文件:

# build-docker.yml

# 填入到github的secrets中 https://github.com/test/repo/settings/secrets/actions

name: 构建和上传镜像到腾讯云私有镜像仓库

on:
  push:
    branches: [master]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    env:
      # 设置镜像名称,请根据你的实际情况修改
      IMAGE_NAME: my-app
      # 腾讯云镜像仓库命名空间,请替换为你的命名空间
      TCR_NAMESPACE: test-hk
      TZ: Asia/Shanghai # 在这里设置时区
      REGISTRY: hkccr.ccs.tencentyun.com # 腾讯云镜像仓库地址
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Generate Docker image tag with timestamp
        id: tag
        run: |
          # 验证时区设置
          echo "当前时区:"
          date
          # 生成时间戳标签,格式为 2025-10-10-12-00-00(精确到秒)
          TIMESTAMP=$(date +'%Y-%m-%d-%H-%M-%S')
          echo "生成的时间戳: $TIMESTAMP"
          echo "TIMESTAMP=$TIMESTAMP" >> $GITHUB_ENV
          # 设置镜像标签,格式为 hkccr.ccs.tencentyun.com/命名空间/镜像名:时间戳
          echo "IMAGE_TAG=${{ env.REGISTRY }}/${{ env.TCR_NAMESPACE }}/${{ env.IMAGE_NAME }}:$TIMESTAMP" >> $GITHUB_ENV

      - name: Log in to Tencent Cloud Container Registry
        uses: docker/login-action@v3
        with:
          # https://github.com/test/repo/settings/secrets/actions
          # https://github.com/docker/login-action
          # 腾讯云镜像仓库地址 https://console.cloud.tencent.com/tcr/repository/
          registry: ${{ env.REGISTRY }}
          username: ${{ secrets.TENCENT_USERNAME }}
          password: ${{ secrets.TENCENT_PASSWORD }}

      - name: Set up Docker Buildx
        uses: fe
  • 准备工作
  • GitHub Actions工作流配置
    • 创建工作流文件
    • 配置GitHub Secrets
  • 腾讯云私有仓库配置
    • 创建私有镜像仓库
    • 获取镜像仓库地址
    • 设置镜像仓库登录密码
  • 服务器端配置
    • 安装腾讯云CLI
    • 创建部署脚本
  • 部署应用
  • 完整部署流程总结

← 在Next.js中接入TradingView图表实践总结告别样式混乱-用Tailwind CSS重塑React Native开发效率 →