基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署
最近在學(xué)習(xí)如何用 Docker 部署生產(chǎn)環(huán)境中的 ASP.NET Core 站點(diǎn),作為一個(gè) Docer 新手,從何處下手更容易入門(mén)呢?一開(kāi)始就手寫(xiě) Docker 配置文件(Docfile, docker-compose.yml)容易讓人產(chǎn)生挫敗感,想到 Visual Studio 2017 對(duì) Docker 的支持(Docker Support),也許借助它自動(dòng)生成Docker配置文件、初步體驗(yàn)一下 Docker 部署是一個(gè)入門(mén)捷徑,遂據(jù)此想法嘗試了一下,感覺(jué)不錯(cuò)。
1. 啟用 VS2017 的 Docker Support 有 2 種途徑:
1.1 在創(chuàng)建 ASP.NET Core 項(xiàng)目時(shí)選中“Enable Docker Support”
1.2 或者在已有的項(xiàng)目(注:不是解決方案)中添加 Docker Support
2. 添加 Docker Support 之后,VS2017 會(huì)生產(chǎn) 4 個(gè) Docker 配置文件和 1 個(gè) .dcproj 文件。
2.1 Dockfile
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "aspnetcore2-20170530.dll"]
2.2 docker-compose.ci.build.yml
(注:由于這里時(shí) ASP.NET Core 2.0 的項(xiàng)目,需要把上面的?microsoft/aspnetcore-build:1.0-1.1 改為?microsoft/aspnetcore-build:2.0)
2.3 docker-compose.yml
version: '3'services:aspnetcore2-20170530: image: aspnetcore2-20170530 build:context: ./aspnetcore2-20170530 dockerfile: Dockerfile
2.4 docker-compose.override.yml
(注:為了可以在容器外部訪問(wèn)站點(diǎn),需要修改上面 ports 部分配置,這里將 "80" 改為 "8008:80" )
3. 在另外 1 臺(tái) Linux 服務(wù)器上用 Docker 分別創(chuàng)建 2 個(gè)容器發(fā)布(dotnet publish)與運(yùn)行 ASP.NET Core 站點(diǎn)
3.1 在 Linux 機(jī)器上簽出 ASP.NET Core 項(xiàng)目(已安裝 Docker)
3.2 根據(jù)?docker-compose.ci.build.yml?配置文件基于?microsoft/aspnetcore-build:2.0?image 創(chuàng)建用于發(fā)布 ASP.NET Core 站點(diǎn)的容器
# docker-compose --file docker-compose.ci.build.yml up Pulling ci-build (microsoft/aspnetcore-build:2.0)... 2.0: Pulling from microsoft/aspnetcore-build ... Status: Downloaded newer image for microsoft/aspnetcore-build:2.0 ... Starting src_ci-build_1 ... Starting src_ci-build_1 ... done Attaching to src_ci-build_1 ... src_ci-build_1 exited with code 03.3 根據(jù)?docker-compose.yml?+?docker-compose.override.yml?基于?microsoft/aspnetcore:2.0?image(來(lái)自Dockerfile的配置)創(chuàng)建用于運(yùn)行 ASP.NET Core 站點(diǎn)的容器
# docker-compose up Starting src_cnblogs.cache.webapi_1 ... Starting src_cnblogs.cache.webapi_1 ... done Attaching to src_cnblogs.cache.webapi_1 cnblogs.cache.webapi_1 | Hosting environment: Development cnblogs.cache.webapi_1 | Content root path: /app cnblogs.cache.webapi_1 | Now listening on: http://[::]:80 cnblogs.cache.webapi_1 | Application started. Press Ctrl+C to shut down.這時(shí)通過(guò)這臺(tái) Linux 服務(wù)器的 8008 端口就可以訪問(wèn)運(yùn)行在 Docker 容器中的 ASP.NET Core 站點(diǎn)。
這樣簡(jiǎn)單快速地體驗(yàn)一下用 Docker 部署 ASP.NET Core 站點(diǎn)的確是一個(gè)不錯(cuò)的入門(mén)途徑。
原文地址:http://www.cnblogs.com/dudu/p/6920764.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ASP.NET Core 指定环境发布(
- 下一篇: Asp.Net Core 发布到IIS