Docker – 在Docker中部署ASP.NET Core 2.1以及修改发布

 
更多

导言

在当今的云计算时代,容器化技术已经成为软件开发与部署的主流选择之一。Docker作为容器化技术的代表,具有轻量、可移植和可扩展等优势,在快速应对不同环境部署的需求上发挥了重要作用。本文将介绍如何使用Docker部署ASP.NET Core 2.1应用,并分享一些修改发布的技巧。

准备工作

在开始之前,确保你已经安装了Docker并且具备基本的Docker使用知识。另外,你需要一台运行Linux操作系统的服务器,以便进行部署实验。

步骤一:创建ASP.NET Core 2.1项目

首先,在本地电脑上创建一个ASP.NET Core 2.1项目。可以使用Visual Studio或者命令行工具进行创建。

dotnet new web -n myapp
cd myapp
dotnet run

在浏览器中访问http://localhost:5000,确保你能够看到项目的默认输出。

步骤二:创建Dockerfile

在项目根目录下创建一个名为Dockerfile的文件,并添加以下内容:

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

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

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

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

上述Dockerfile定义了多个容器层次,用于构建、发布和运行ASP.NET Core 2.1应用。重要的是要注意EXPOSE指令,它将容器内的80端口暴露给外部访问。

步骤三:构建Docker镜像

在项目根目录下,执行以下命令构建Docker镜像:

docker build -t myapp .

这里将Docker镜像命名为myapp。

步骤四:运行Docker容器

完成镜像构建后,使用以下命令在Docker中运行ASP.NET Core 2.1应用:

docker run -d -p 8080:80 myapp

这里将容器内的80端口映射到主机的8080端口。现在,你可以通过访问http://localhost:8080来验证应用是否成功部署到Docker中。

修改发布

在实际部署中,我们可能需要对应用进行一些配置修改。下面是一些常见的修改发布技巧:

指定环境变量

通过在Dockerfile中添加以下内容,可以为应用指定环境变量:

...
ENV MY_ENVIRONMENT production
...

通过环境变量配置连接字符串

通过在appsettings.json文件中添加占位符,然后在Docker容器中通过环境变量替换连接字符串。

appsettings.json文件中的配置:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=myapp;Integrated Security=True;"
  }
}

Dockerfile中的修改:

...
RUN dotnet build "myapp.csproj" -c Release -o /app /p:ConnectionString=$MY_CONNECTION_STRING
...

挂载配置文件

可以通过在运行容器的时候挂载外部配置文件来修改应用的配置。

docker run -d -p 8080:80 -v /path/to/appsettings.json:/app/appsettings.json myapp

这样,你就可以在主机上修改/path/to/appsettings.json文件,并且容器中的应用会自动加载新的配置。

结论

使用Docker部署ASP.NET Core 2.1应用,具有诸多优势,包括轻量化、可移植、可扩展等。本文介绍了从创建项目到发布以及修改发布的完整流程,希望对你理解和应用Docker在ASP.NET Core开发中的作用有所帮助。

如果你有任何疑问或者建议,请在评论区留言。谢谢阅读!

打赏

本文固定链接: https://www.cxy163.net/archives/6728 | 绝缘体

该日志由 绝缘体.. 于 2022年10月01日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Docker – 在Docker中部署ASP.NET Core 2.1以及修改发布 | 绝缘体
关键字: , , , ,

Docker – 在Docker中部署ASP.NET Core 2.1以及修改发布:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter