以前入坑dotnet core,因为一开始就遇到在windows上编译发布的web没法直接放到centos上执行。以后便直接研究docker,实如今容器中编译发布。而后就越玩越大,后来利用git的hooks实现自动实现git源码一收到push就自动化获取新代码并编译发布。最后为了方便复用,直接作成统一配置,所以不须要再次编写复杂的脚本配置。只须要打开配置文件,配置几项值,运行一个脚本就ok。python
目前有两个版本,原始版本包括git项目的自动克隆。v1版本则把git的克隆抽了出来须要人工克隆一次。具体看readme文档有说明。nginx
这个缘由是由于docker的网络机制。每次容器启动时,docker都会从新分配一个ip地址给容器,若是有配置容器之间网络通讯(经过links),会在容器中的hooks文件中记录上链接容器的ip信息。但因为web容器重启而不须要重启nginx,致使nginx容器还记录着以前web容器的ip信息,致使更新后再次访问nginx就跳转不到web容器上。git
解决方法就是配置独立的网络(经过docker-compose)。具体看下面截取的配置(docker-compose.yml)github
version: '3' services: web: networks: - auto-ci-nw nginx: networks: - auto-ci-nw networks: auto-ci-nw: