前提
为了确保GitHub上的项目可以顺利制作成镜像并推送到hub.docker.com,您需要做好以下准备:
-
可用的GitHub帐号;
-
可用的hub.docker.com帐号,也可以用其他镜像仓库如阿里云;
关于java项目
-
用于本次实战的项目,是个典型的父子结构的gradle工程,有一个模块是springboot工程,咱们今天要做的就是将此工程编译构建制作成docker镜像;
-
这个java工程的详细内容请参考《SpringBoot(2.4)应用制作Docker镜像(Gradle版官方方案)》,这里不再赘述,只挑出几个关键地方说一下;
-
如下图,demowebapp是个springboot应用,内部已经准备好了Dockerfile文件,只要用此文件即可将编译结果做成docker镜像:
- demowebapp项目内部有个controller类,提供web接口,用于验证功能是否正常;
设置环境变量
- 在推送镜像到hub.docker.com时,需要用到该网站的帐号和密码,这些信息自然不能写在GithHub仓库的代码中,如下图,在页面上按照下面红框的顺序新增两个secret类型的环境变量,稍后在GitHub Actions脚本中用变量名就能使用具体的帐号和密码了:
编写GitHub Actions脚本
- 这里我选择了在线编辑GitHub Actions脚本(您也可以在本地编辑后提交推送到GitHub),如下图红框,在Github项目页面上点击Actions: