如何使用 GitHub Actions 构建 Docker 镜像

使用GitHub Actions构建Docker镜像,首先需要在仓库中创建一个名为.github/workflows的文件夹,并在其中创建一个YAML文件(如docker_build.yml),然后编写相应的工作流程配置。

如何使用 GitHub Actions 构建 Docker 镜像

准备工作

如何使用 GitHub Actions 构建 Docker 镜像

1、在 GitHub 上创建一个新的仓库,用于存放 Dockerfile 和相关代码。

2、在本地计算机上安装 Docker 和 Docker Compose。

3、在仓库中创建一个名为 Dockerfile 的文件,用于定义 Docker 镜像的构建过程。

4、在仓库中创建一个名为 .github/workflows 的文件夹,用于存放 GitHub Actions 工作流配置文件。

创建 Dockerfile

Dockerfile 文件中,编写以下内容:

使用官方 Python 基础镜像
FROM python:3.8slim
设置工作目录
WORKDIR /app
将依赖文件复制到工作目录
COPY requirements.txt .
安装依赖
RUN pip install nocachedir r requirements.txt
将源代码复制到工作目录
COPY . .
暴露端口
EXPOSE 8000
启动应用
CMD ["python", "app.py"]

创建 GitHub Actions 工作流配置文件

如何使用 GitHub Actions 构建 Docker 镜像

.github/workflows 文件夹中,创建一个名为 docker_build_push.yml 的文件,用于配置 GitHub Actions 工作流,编写以下内容:

name: Build and Push Docker Image
on:
  push:
    branches:
      main
jobs:
  build_and_push:
    runson: ubuntulatest
    steps:
    name: Checkout repository
      uses: actions/checkout@v2
    name: Set up Docker Buildx
      uses: docker/setupbuildxaction@v1
    name: Login to DockerHub
      uses: docker/loginaction@v1
      with:
        username: ${{ secrets.DOCKERHUB_USERNAME }}
        password: ${{ secrets.DOCKERHUB_TOKEN }}
    name: Build and push Docker image
      uses: docker/buildpushaction@v2
      with:
        context: .
        push: true
        tags: your_dockerhub_username/your_repository_name:latest

设置 DockerHub 凭据

在 GitHub 仓库的 Settings > Secrets > New repository secret 中,添加两个新的 secret:

1、DOCKERHUB_USERNAME:你的 DockerHub 用户名。

2、DOCKERHUB_TOKEN:你的 DockerHub 访问令牌。

触发 GitHub Actions 工作流

提交代码到 main 分支,GitHub Actions 会自动触发工作流,构建并推送 Docker 镜像到 DockerHub。

如何使用 GitHub Actions 构建 Docker 镜像

相关问题与解答

Q1: 为什么需要使用 Docker Buildx?

A1: Docker Buildx 是一个用于构建 Docker 镜像的工具,它提供了更高效、更灵活的构建方式,使用 Buildx 可以加速构建过程,同时支持多平台构建。

Q2: 如何将构建好的 Docker 镜像部署到其他服务器?

A2: 你可以使用 Docker Machine、kubectl 或其他部署工具将构建好的 Docker 镜像部署到其他服务器,具体方法取决于你的需求和基础设施。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/619189.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-05-15 23:36
下一篇 2024-05-15 23:39

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入