问题描述

在博文(【Azure App Service For Container】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务)中我们通过VS 2019可以为项目添加Dockerfile并自动生成Docker Image文件。但是如果不借助于VS2019我们如何来操作呢?

解决步骤

准备Dockerfile

进入项目文件夹中,创建Dockerfile并COPY以下内容:

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
#For more information, please see https://aka.ms/containercompat FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
ENV ASPNETCORE_URLS=http://+:8000 

WORKDIR /app
EXPOSE 8000
EXPOSE 5000 COPY . /app/
ENTRYPOINT ["dotnet", "MyLife.Blazor.Server.dll"]
  • FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base  和 FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build 可以在Docker Hub中查询到对于的版本镜像(https://hub.docker.com/_/microsoft-dotnet-sdk)
  • COPY . /app/ 即把dockerfile所在的目录中所有文件复制到镜像中app目录中

生成镜像

通过CMD进入到当前目录, 使用 docker build -t mywebimages .  (特别注意:在命令中必须要点.,黄色高亮的部分替代为自定义的镜像名。详细的命令参考Docker说明:https://docs.docker.com/engine/reference/commandline/build/

当命令运行完成后,在Docker Desktop页面中可以看见当前Images

运行镜像,验证项目运行成功

在Docker Desktop中Run当前Image或者通过docker run命令启动Container: docker run --name testweb -p 8080:8000 mywebimages

 命令启动输出:

C:\MyCode\MyLife\MyLife.Blazor\MyLife.Blazor\Server\bin\Release\net5.0\publish>docker run --name testapidemo -p 8080:8000 mywebimages
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
Storing keys in a directory 'C:\Users\ContainerUser\AppData\Local\ASP.NET\DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://[::]:8000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\app
warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
Failed to determine the https port for redirect.

 

访问Docker Container指定的端口8080结果为:

参考资料:

Docker Hub: https://hub.docker.com/_/microsoft-dotnet-sdk

创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务: https://www.cnblogs.com/lulight/p/14315383.html

windows上用VS2019开发的 .NETCore项目如何打包部署到linux Docker中: https://blog.csdn.net/weixin_48000648/article/details/106524426

最新文章

  1. [linux系统]--搭建ftp服务器并且 创建用户 设置密码
  2. (转)Android 系统属性SystemProperty分析
  3. Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable
  4. Java中Runnable和Thread
  5. LoadRunner性能测试执行过程的问题
  6. C语言细节——献给入门者(三)
  7. 多线程程序设计学习(8)Thread-Per-Message
  8. 数据库的group by 分组
  9. apache中端口与目录的关系
  10. 如何使用Linux 命令more 查看文本文件
  11. Java 7.21 游戏:豆机(C++&Java)
  12. 阿里云Linux服务器安装 nginx+mysql+php
  13. Express框架Fetch通信
  14. 利用asynchttpclient开源项目来把数据提交给服务器
  15. (并查集 建立关系)食物链 -- POJ-- 1182
  16. hdu1546Idiomatic Phrases Game(floyd+map)
  17. 4星|《财经》2018年第10期:远程视界自我定位为“专科远程医疗联合体O2O平台”,主要盈利模式就是做融资租赁
  18. UIPickerView的使用
  19. 2012r2 以及 2012r2 withupdate 已经安装更新的差异
  20. scrapy 爬虫踩过的坑(I)

热门文章

  1. Vscode下载与配置(C语言)
  2. vue第一单元(初识webpack-webpack的功能-webpack的初步使用)
  3. 一个 Spark 应用程序的完整执行流程
  4. 个人微信公众号搭建Python实现 -个人公众号搭建-被动回复消息建模(14.3.2)
  5. Erlang那些事儿之正儿八经的前言
  6. 注解 @CrossOrigin
  7. Elasticsearch 学习二(请求流程).
  8. VSCode---REST Client接口测试辅助工具
  9. python字符串、列表通过值找索引/键
  10. [.NET] WCFDataService项目host到IIS上碰到的一个问题:数据库未能打开