维护我在阿里云的各种私有&共有镜像,以及不同类型项目生成docker镜像的原则。
- 基础包镜像,被别的项目引用的项目。比如:
pyanalysis
pyghostbt
goghostex
gobase
。Action发布流程通过格式检测、编译、分发等流程过后。将代码复制到对应项目的docker中。这个docker镜像仅仅用来被其他项目COPY代码使用,并触发对应的依赖环境的最新docker版本。 - 线上服务镜像,需要上线的项目。将项目源代码/编译后可执行文件复制到对应的基础镜像中。并提供服务启动的
CMD
或者ENTRYPOINT
- 编译/依赖环境的镜像,比如:
gobuild
pybuild
。镜像中存放着所有依赖项目的代码。 - 可执行文件的镜像,比如:
exec
。
- exec. 所有可执行文件的基础镜像。
- gobuild. golang的编译环境的镜像,用来启动编译所有的golang服务。
- pybuild. python的编译环境的镜像,用来启动编译所有的python服务。
- exec. 打 release-exec-v* 形式的tag发布对应的包
- gobuild. 打 release-alpine-v* 形式的tag发布对应的包
- 创建新的文件夹。编写对应的Dockerfile。
- 在Makefile中编写对应的make命令。
- 在阿里云镜像服务中建立对应的项目。
- 在.github/workflows文件夹中创建对应项目release配置文件。