航班信息容器的构建、发布与部署指南
1. 自动化构建与容器镜像仓库选择
在开发环境中,我们曾使用 make
来本地测试、构建和运行微服务。但要将服务部署到测试、预发布等环境,就需要一个更具可重复性和自动化的流程。我们已经为航班微服务构建了容器化版本,如果您不想自己构建 Docker Hub 部署工作流,可以直接跳到部署部分。
使用自动化和 DevOps 技术构建服务能够提高微服务部署的可预测性、质量和速度。这里我们将构建一个持续集成和持续交付(CI/CD)管道,把航班微服务构建并发布到容器镜像仓库。
1.1 Docker Hub 介绍
之前基于 make
的构建过程使用了 docker-compose
和 docker
来生成用于测试和发布的容器。为了将这些容器迁移到预发布环境,需要一个容器镜像仓库。容器类似于二进制应用程序,虽然可以直接上传到目标环境的文件系统,但随着容器数量的增加,管理会变得混乱。
容器镜像仓库是存储容器的软件系统,好的镜像仓库能保证容器安全,便于发现、更新和更改。Docker 定义了用于镜像仓库操作的 API,Docker 引擎也内置了对其的支持。
有许多支持 Docker 镜像仓库 API 的托管选项,主要的云提供商都能提供安全的私有镜像仓库,也可以使用 Docker 的开源实现来搭建自己的镜像仓库。这里我们选择 Docker Hub,因为它免费、流行且与 GitHub Actions 有很好的集成。