自动化部署Docker到GitHub的流程

为了帮助你实现“GitHub自动化部署Docker”的功能,我将会详细介绍整个流程,并提供每个步骤所需执行的代码以及其作用。

流程

下表展示了实现GitHub自动化部署Docker的步骤:

步骤 内容
1 在GitHub创建一个仓库
2 编写Dockerfile
3 创建GitHub Action
4 在GitHub仓库中配置Secrets

代码及说明

步骤1:在GitHub创建一个仓库

首先,在GitHub上创建一个新的仓库,命名为你想要的名称,例如my-docker-app

步骤2:编写Dockerfile

在仓库中创建一个名为Dockerfile的文件,并添加以下内容:

```Dockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
CMD ["nginx", "-g", "daemon off;"]

这段代码表示使用最新版本的Ubuntu作为基础镜像,在其中安装Nginx,并在容器启动时启动Nginx服务。

### 步骤3:创建GitHub Action

在仓库中创建一个名为`.github/workflows/docker.yml`的文件,并添加以下内容:

```markdown
```yaml
name: Deploy Docker

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

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

      - name: Login to Docker Hub
        run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin

      - name: Build and push Docker image
        run: docker build -t my-docker-app .
        run: docker tag my-docker-app ${{ secrets.DOCKERHUB_USERNAME }}/my-docker-app
        run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/my-docker-app

这段代码表示在GitHub仓库中创建一个名为`Deploy Docker`的GitHub Action,当`main`分支有代码推送时触发。其作用是将Docker镜像构建并推送到Docker Hub。

### 步骤4:在GitHub仓库中配置Secrets

在GitHub仓库中的Settings页面中,点击`Secrets`,分别添加`DOCKERHUB_USERNAME`和`DOCKERHUB_TOKEN`作为两个Secrets,分别用来存储Docker Hub的用户名和访问令牌。

## 状态图

```mermaid
stateDiagram
  [*] --> 创建仓库
  创建仓库 --> 编写Dockerfile
  编写Dockerfile --> 创建GitHub Action
  创建GitHub Action --> 配置Secrets
  配置Secrets --> [*]

饼状图

pie
    title GitHub自动化部署Docker
    "创建仓库" : 25
    "编写Dockerfile" : 25
    "创建GitHub Action" : 25
    "配置Secrets" : 25

通过以上步骤和代码,你就可以实现GitHub自动化部署Docker的功能了。希望这篇文章能够帮助到你,加油!