[Jenkins] Automated Deploy with Docker | jenkins deploy docker
上一篇[1]我透過jenkins完成自動build、publish相關NetCoreapplication(MyAPI),同時也自動建立相對應kestrelweb,這篇來看看如何使用docker來取代。我所接觸的產業,架構上,到現在還沒看過只用一台(超強)web(application)server,幾乎都超過3台以上server並搭配LB來handle所有client的httprequests,我為了讓整合測試環境更貼近生產環境,而且也需符合快速建立或刪除相對應webserver效率,所以我選擇使用docker來實現,架構修改後如下圖Note:如果要建立nginxcontainer,須在nginx.conf設定daemonoff,像這種無狀態服務,docker啟動...
上一篇[1]我透過jenkins完成自動build、publish相關NetCore application(MyAPI),
同時也自動建立相對應kestrel web,這篇來看看如何使用docker來取代。
我所接觸的產業,架構上,到現在還沒看過只用一台(超強)web(application) server,
幾乎都超過3台以上server並搭配LB來handle所有client的http requests,
我為了讓整合測試環境更貼近生產環境,而且也需符合快速建立或刪除相對應web server效率,
所以我選擇使用docker來實現,架構修改後如下圖
Note:如果要建立nginx container,須在nginx.conf設定daemon off,
像這種無狀態服務,docker啟動完後就會自行關閉該process。
我將使用Dockerfile快速建立base image with aspnetcore,並使用docker-compose.yml參照Dockerfile快速建立三台web server,
而這一切都將透過jenkins來幫我自動完成,同時也會更新nginx.conf來符合LB機制。
另外,我這裡只是簡單示範(請勿直接服用),實務上,我會參考專案中的json設定檔案,
並透過replace string方法來建立各種環境,當然還有更多細節。
Dockerfile
# docker build -f Dockerfile -t rico/myapi . # Build runtime image FROM microsoft/aspnetcore MAINTAINER RiCo WORKDIR /app COPY ./AssemblyOutput /app EXPO...