用Docker自動構建紙殼CMS


紙殼CMS可以運行在Docker上,接下來看看如何自動構建紙殼CMS的Docker Image。我們希望的是在代碼提交到GitHub以后,容器鏡像服務可以自動構建Docker Image,構建好以后,就可以直接拿這個Docker Image來運行了。

Dockerfile

最重要的,就是Dockerfile中的定義了。先上代碼:

FROM microsoft/aspnetcore-build:latest AS builder
WORKDIR /build
# Copy all files
COPY . ./
RUN dotnet restore
# Release ZKEACMS.WebHost
WORKDIR /build/src/ZKEACMS.WebHost
RUN dotnet publish-zkeacms

# Build runtime image
FROM microsoft/aspnetcore:2.0.3
WORKDIR /zkeacms
COPY --from=builder /build/src/ZKEACMS.WebHost/bin/Release/PublishOutput .
EXPOSE 80
ENTRYPOINT ["dotnet", "ZKEACMS.WebHost.dll"]

簡單解釋一下,首先,需要使用microsoft/aspnetcore-build來發布紙殼CMS,因為microsoft/aspnetcore只是runtime,並不能release。

  1. 定義編譯環境builder
  2. 將源代碼復制到編譯環境中的build目錄
  3. 執行 restore
  4. 定位到 ZKEACMS.WebHost 目錄,執行發布命令 dotnet publish-zkeacms
  5. 定義運行環境為 microsoft/aspnetcore:2.0
  6. 將發布好的內容從編譯環境中復制到運行環境中

整個Dockerfile的定義很簡單,如果您已經有安裝了docker,將代碼保存到項目的根目錄,文件名為Dockerfile,就可以直接使用docker build來生成docker image了。

docker build -t zkeacms .

自動構建

已經定義好了Dockerfile,並可以在docker的環境中編譯,發布,那現在就可以使用容器鏡像服務來自動構建了。

Docker Hub

使用Docker Hub,創建一個自動構建的倉庫,連接到GitHub中的項目,可以輕松實現自動構建

選擇一個你的項目

在創建好你的倉庫以后,簡單設置一下分支和Dockerfile的路徑,就可以了

阿里雲容器鏡像服務

如果你覺得Docker Hub太慢了,在國內,你可以使用阿里雲的容器鏡像服務。https://dev.aliyun.com/search.html

新建一個鏡像倉庫就行了:

在設置好以后,你會發現在你的項目設置中,會多了Webhooks或者Integrations & services

 原文鏈接:http://www.zkea.net/codesnippet/detail/post-78


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM