.net core——Docker化开发和部署

本篇文章是使用Vs2017生成的Dockerfile进行部署的。

VS2017生成Docker部署项目

这里采用VS2017自动生成Dockerfile,建立项目时选择启用Docker支持,可选择linux和windows,windows需要安装docker for windows,这里不再描述。本篇文章主要以CentOS为部署目标。
在这里插入图片描述

Dockerfile内容

文件及注释内容如下:
Docker安装请参考 官方文档

# 选择.net core 运行时容器为基容器, as命令需要高版本的Docker支持。
# 这里的坑是Centos自带的 Docker版本不支持 as命令,因此需要升级
# 安装步骤请参考上面的官方文档
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["SSApiService/SSApiService.csproj", "SSApiService/"]
RUN dotnet restore "SSApiService/SSApiService.csproj"
COPY . .
WORKDIR "/src/SSApiService"
RUN dotnet build "SSApiService.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "SSApiService.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "SSApiService.dll"]

在开发服务器安装

如果有Jekins服务器,可以参考类似命令。
这里忽略了从git服务拉取代码的步骤。

按照如下顺序执行docker命令

docker stop wmsapi 
docker rm wmsapi
docker rmi mark/api
docker build -f /data/dotnet/SSApiService/SSApiService/Dockerfile  -t mark/api .
docker run -d -p 5000:80 --name wmsapi mark/api
docker images
===================执行结果==============================================================
REPOSITORY          TAG                      IMAGE ID            CREATED             SIZE
mark/api            latest                   7d7b13f4e34b        24 minutes ago      257MB
<none>              <none>                   5b6bff345326        24 minutes ago      1.74GB
microsoft/dotnet    2.1-sdk                  e87e5f0285fc        13 days ago         1.73GB
microsoft/dotnet    2.1-aspnetcore-runtime   ea22d9662fa7        13 days ago         253MB
microsoft/dotnet    2.1-aspnetcore-runtime   ea22d9662fa7        13 days ago         253MB
docker ps
===================执行结果==============================================================
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                           NAMES
247e2596a83e        mark/api            "dotnet SSApiService…"   18 minutes ago      Up 18 minutes    0.0.0.0:5000->80/tcp   wmsapi

结论

VS2017为在dokcer容器内的开发和部署提供了非常便利的帮助。几乎傻瓜式的。
嗯!点赞宇宙第一编译器!


在此我向大家推荐一个微服务架构学习交流群。交流学习QQ群号:864759589 里面会分享一些资深架构师录制的视频录像:高并发、高性能、分布式、微服务架构的原理,分布式架构等这些成为架构师必备的知识体系。
在这里插入图片描述


引用链接

  1. 口袋代码仓库
  2. 在线计算器
  3. 本节源码:github

猜你喜欢

转载自blog.csdn.net/webmote/article/details/85005226