再見二丁目 | yitimo的个人博客

再见二丁目

使用dockerhub和GitHub action来自动化部署你的博客

发布于: 2021-08-24 20:00

此文章久未修订,请自行甄别内容准确性。

Docker做了什么

docker是基于容器的虚拟机, 围绕着镜像和容器来工作。Dockerfile 描述了如何配置这个镜像, 比如基于哪个镜像, 复制哪些文件, 执行哪些命令。

传统的应用线上部署

大致要做这些事:

  1. 配置服务器环境
  2. 配置依赖
  3. 上传release资源到服务器
  4. 运行程序
  5. 当更换、扩展服务器时, 都要重新配置服务器环境
  6. 多个应用同时运行在宿主机, 依靠目录、用户、端口等区分

基于docker的应用线上部署

大致要做这些事:

  1. 服务器和本地各安装好docker
  2. 本地工程在 Dockerfile 里进行配置
  3. 构建应用到docker镜像并发布
  4. 在服务器上运行这个镜像
  5. 当更换、扩展服务器时, 重新安装docker即可
  6. 多个应用相互隔离, 通过容器id区分, 通过端口通信

Docker常用命令:

GithubAction做了什么

支持我们指定在 哪个分支 发生 什么事件 时, 基于 哪个环境 执行 哪些行为

比如本博客当下的配置:

name: Docker Image CI # 名字
on:
  push:
    branches: [ master ] # 响应master分支的push
  pull_request:
    branches: [ master ] # 响应master分支的PR
jobs:
  build:
    runs-on: ubuntu-latest # 基于ubuntu运行
    steps:
    - uses: actions/checkout@v2 # 内置的checkout行为
    - name: Build the Docker image # 基于当前分支创建docker镜像
      run: docker build . --file Dockerfile --tag yitimo/yitiblog:latest
    - name: Login to DockerHub # 登录到docker hub
      uses: docker/login-action@v1 
      with:
        username: $
        password: $
    - name: Publish image to public docker hub # push建好的镜像到docker hub
      run: docker push yitimo/yitiblog:latest

还可以做什么

一张图总结

还没画好:)

扩展