0


Docker 与 GitHub:完美结合实现容器化部署与持续集成

Docker 与 GitHub:完美结合实现容器化部署与持续集成

使用 Docker 和 GitHub,开发者可以将代码构建、测试和部署流程自动化,从而提高开发效率,确保应用程序的一致性与可靠性。本文将介绍如何使用 Docker 和 GitHub Actions 实现容器化部署与持续集成。

目录

  1. 概述
  2. Docker 基础知识
  • Docker 镜像
  • Docker 容器
  • Dockerfile
  1. GitHub Actions 基础知识
  2. 创建 Docker 镜像
  3. 设置 GitHub Repository Secrets
  4. 配置 GitHub Actions Workflow
  5. 自动化构建与部署
  6. 结束语

概述

借助 Docker 和 GitHub Actions,开发者能够快速构建、测试和部署应用程序。下面,我们将分别介绍 Docker 和 GitHub Actions 的基本知识,并展示如何将它们结合以实现自动化工作流。

Docker 基础知识

Docker 镜像

Docker 镜像是一个轻量级、独立的可执行软件包,包含运行特定应用程序所需的所有内容,包括代码、运行时、库和配置信息。使用镜像可以确保应用在任何环境下都能正常运行。

Docker 容器

Docker 容器是镜像运行时的实例。容器使用操作系统的内核,因此重量很轻,可以快速启动。多个容器可以在同一主机上运行,并共享操作系统内核。

Dockerfile

Dockerfile 是一个文本文件,其中包含构建 Docker 镜像的指令。以下是一个示例:

登录后复制

# 使用官方 Node.js 镜像作为基础镜像
FROM node:14

# 创建并设置工作目录
WORKDIR /usr/src/app

# 复制 package.json 和 package-lock.json
COPY package*.json ./

# 安装项目依赖
RUN npm install

# 复制项目文件
COPY . .

# 暴露应用运行端口
EXPOSE 8080

# 启动应用程序
CMD ["node", "server.js"]

GitHub Actions 基础知识

GitHub Actions 是 GitHub 提供的 CI/CD 工具,允许您自动化构建、测试和部署过程。通过定义工作流,您可以在代码被推送到版本库时自动触发这些过程。

创建 Docker 镜像

首先,创建一个名为

Dockerfile

的文件,并根据项目需求定义 Docker 镜像构建指令。确保项目根目录下有一个

Dockerfile

设置 GitHub Repository Secrets

为了在工作流中安全地使用敏感信息(如 Docker Hub 登录凭证),我们需要在 GitHub 仓库中配置 secrets。

步骤详解
  1. 打开 GitHub 仓库页面。
  2. 点击右上角的 Settings
  3. 在左侧菜单中找到 Secrets and variables,然后选择 Actions
  4. 点击 New repository secret 按钮。
  5. 添加 DOCKER_USERNAMEDOCKER_PASSWORD secrets。确保名称和值准确。

配置 GitHub Actions Workflow

在 GitHub 仓库的

.github/workflows

目录下创建一个新的工作流文件,例如

docker-deploy.yml

登录后复制

name: Build and Push Docker image

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout the code
      uses: actions/checkout@v2

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v1

    - name: Cache Docker layers
      uses: actions/cache@v2
      with:
        path: /tmp/.buildx-cache
        key: ${{ runner.os }}-buildx-${{ github.sha }}
        restore-keys: |
          ${{ runner.os }}-buildx-

    - name: Login to DockerHub
      uses: docker/login-action@v1
      with:
        username: ${{ secrets.DOCKER_USERNAME }}
        password: ${{ secrets.DOCKER_PASSWORD }}

    - name: Build and push Docker image
      uses: docker/build-push-action@v2
      with:
        context: .
        platforms: linux/amd64,linux/arm64
        tags: user/app:latest
        push: true
        cache-from: type=local,src=/tmp/.buildx-cache
        cache-to: type=local,dest=/tmp/.buildx-cache

上述工作流将在每次代码推送到

main

分支时自动触发:

  1. 检出代码。
  2. 设置 Docker Buildx 以支持多架构构建。
  3. 配置缓存以提高构建速度。
  4. 登录 Docker Hub。
  5. 构建并推送 Docker 镜像到 Docker Hub。

自动化构建与部署

通过上述配置,每当代码推送到

main

分支时,GitHub Actions 会自动执行工作流,并将最新的 Docker 镜像构建并推送到 Docker Hub。这极大地简化了构建、测试和部署的过程,提高了开发效率。

结束语

通过结合使用 Docker 和 GitHub,开发者可以实现自动化的容器化部署和持续集成,确保应用程序的一致性和可靠性。希望这篇文章能帮助你更好地理解并使用 Docker 和 GitHub Actions。如果你有其他问题或需求,欢迎进一步探讨。

标签: docker github ci/cd

本文转载自: https://blog.csdn.net/qq_35485206/article/details/142428520
版权归原作者 心上之秋 所有, 如有侵权,请联系我们删除。

“Docker 与 GitHub:完美结合实现容器化部署与持续集成”的评论:

还没有评论