首页 > 编程语言 >简简单单学docker在群晖nas中构建docker版aspnetcore网站

简简单单学docker在群晖nas中构建docker版aspnetcore网站

时间:2023-07-31 17:33:07浏览次数:37  
标签:app BlazorApp1 publish nas build dotnet docker aspnetcore

琢磨了n天,掉了好多头发,终于可以了,踩坑无数!终于行了!

先来了解下:

1.net运行时runtime和sdk,简单来说就是sdk开发用的,runtime是用来运行的,所以构建dockerfile只用runtime就够了!

2.docker运行不需要打包操作系统如ubuntu等进入包内!特殊需要的可以!这个问题都必须了解!

正式开始

1.用vs2022完成aspnet网站的建设和测试,我用的是blazorserve框架,一样的,先发布

2.创建Dockerfile文件,最好放在项目文件夹外面.

用vs2022项目右键添加docker支持,创建的dockfile如下

#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base          这是dotnet运行时,必须的
WORKDIR /app        相当于cd /app 进入目录,位置是相对dockerfile的位置来说的
EXPOSE 80             容器暴露哪个端口

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build              引入sdk,完全没有必要,开发在本地就可以了,下面的都没用,去掉一个from就是一个层,from多文件就大
WORKDIR /src
COPY ["BlazorApp1.csproj", "."]
RUN dotnet restore "./BlazorApp1.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "BlazorApp1.csproj" -c Release -o /app/build

FROM build AS publish                                                                              从上一步as build层中发布网站到publish目录
RUN dotnet publish "BlazorApp1.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final                     以运行时为基础打包
WORKDIR /app
COPY --from=publish /app/publish .      从publish环境中复制出来发布的文件到app目录
ENTRYPOINT ["dotnet", "BlazorApp1.dll"]      运行

太复杂了,很多用不到,一个from就是一个文件层,from多文件就庞大,
 

标签:app,BlazorApp1,publish,nas,build,dotnet,docker,aspnetcore
From: https://www.cnblogs.com/yaoyue68/p/17594000.html

相关文章

  • 运行 docker-compose -f common.yml -f kafka_cluster.yml up 命令之后,其中一个broker
    今天在运行docker-compose-fcommon.yml-fkafka_cluster.ymlup,这条命令的时候,原来应该启动的broker-3容器没有启动,然后允许dockerps-a查看存在但是没有up的容器。 找到broker-3的容器id:,dockerlogs a6488cb653a1 。找打容器启动日志,发现关键错误信息。En......
  • docker容器基础(一)--容器的边界
    前言------源于PaaS技术的普及而兴起的容器技术,必然随着诸多云平台的出现大放光彩。Docker项目通过“容器镜像”,解决了应用打包这个根本性难题。容器是什么?------容器是一种沙盒技术,将你的应用装入盒子,即与其他应用进行了隔离,又便于搬运。容器的边界------容器技术的核心......
  • docker-mysql(集群)
    第一步:安装docker+并获取mysql镜像第二步:运行master的mysql容器dockerrun-id\--name=mysql_master\-p3307:3306\-v$PWD/mysql-master/conf:/etc/mysql/conf.d\-v$PWD/mysql-master/logs:/logs\-v$PWD/mysql-master/data:/var/lib/mysql\-eMYSQL_ROOT_PASSWO......
  • Alpine Linux使用入门(Docker视角)
    前言我们在了解AlpineLinux时,多数都应该是从docker系统镜像了解的这个操作系统,今天我们就简单说一下AlpineLinux的基础使用AlpineLinux是一种基于musl和BusyBox的Linux发行版,专为安全性、简单性和资源效率而设计。体积非常小巧,适合用来做Docker镜像。如果你有Centos或者Ubun......
  • docker 容器技术--资源限制
    资源限制资源类型      可压缩资源CPU磁盘网络。。。不可压缩资源内存。。。资源限制原理--CGROUPCGROUP概念LinuxCgroup全称LinuxControlGroup,是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。这个项目最早是......
  • 为什么不建议在 Docker 中跑 MySQL
    容器的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。目前,容器和Docker依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以:数据库MySQL是否需要容器化?认真分析大家的各种观点,发现赞同者仅仅是......
  • 安卓运行 lxc + docker 教程
    byredblue(弗朗西斯科)【一】安装lxc手机打开termux一键更换北京大学源,执行echo"debhttps://mirrors.pku.edu.cn/termux/termux-mainstablemain">PREFIX/etc/apt/sources.list安装lxcpkgupdatepkginstallroot-repopkginstalllxc【二】关于......
  • Docker cp命令
     进入容器内部命令dockerexec-ittomcat-8082bash退回容器命令:exit,root@4ecf5be63f95,红色表示在容器内部复制web文件到tomcat-8082容器内部,dockercpwebtomcat-8082:/usr/local/tomcat/webapps/ROOT复制tomcat-8080容器内部index.html文件,至......
  • nacos的docker安装
    nacos的官方文档地址:https://github.com/nacos-group/nacos-docker/blob/master/README_ZH.md登录docker镜像,查询镜像仓库:deckersearchnacos拉取镜像:dockerpullnacos/nacos-server查看镜像:dockerimages单机启动:dockerrun--namenacos-quick-eMODE=standalone-p884......
  • docker install
    dockerinstall安装DockerDocker软件包和依赖包已经包含在默认的CentOS-Extras软件源里,安装命令如下:[root@localhost~]#yum-yinstalldocker启动Docker后台服务[root@localhost~]#servicedockerstart一、获取nginx镜像1.使用dockersearchnginx命令获取nginx镜像......