以前入坑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: