找回密码
 立即注册
快捷导航

[.NET] .Net7极速部署到Docker

[复制链接]
搞事 2023-7-18 03:30:27 | 显示全部楼层
本帖最后由 搞事 于 2023-7-18 19:25 编辑

vs内置提供了docker支持,vs中,右键项目 - 添加 - docker支持 - 选择 linux

此时项目中会生成一个Dockerfile文件

提醒:Dockerfile是用来将代码打包成docker镜像的配置文件

.Net7极速部署到Docker9873 作者:搞事 帖子ID:500

这个dockerfile是一个 多阶段构建 的技术,第一个FROM是创建一个项目运行时的环境,第二个FROM是还原项目依赖并编译项目的环境,第三个FORM是发布编译后的项目环境,第四个FORM是将发布出来的二进制文件拷贝到第一个搭建出来的运行时环境中执行

3行,拉取aspnet作为基础镜像并将其命名为base
4行,workdir 表示设置工作目录,即后续的命令操作都会默认在这个目录上运行
5行,expose docker对外暴露80端口
7行,在src目录中拉取sdk编译项目的源代码
9行,将宿主机上的这两个文件/文件夹拷贝到容器中的 /src 中
10行,根据项目文件(例如 csproj 文件)中定义的依赖项信息,下载并还原 .NET 项目依赖项
11行,将当前宿主机目录下的所有文件和文件夹复制到容器的当前工作目录中
12行,设置(切换)工作目录
13行,编译项目
16行,发布
20行,将名为publish的镜像中复制/app/publish目录下的所有文件到当前工作目录。
21行,设置容器入口点为执行 dotnet AuthServer.Host.dll

精简这个官方生成的dockerfile

.Net7极速部署到Docker3531 作者:搞事 帖子ID:500

将项目源代码打包上传到服务器上(或者本地打包并push到dockerhub上);
进入dockerfile所在的目录
通过dockerfile构建镜像:docker build -t myauth .
启动容器:docker run -d -p 5000:80 --restart=always --name auth1 myauth


安装Portaine控制台(Docker的UI)
docker pull portainer/portainer-ce
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer-ce

优点:
  • 简单方便
  • 和git+jenkins等能做到持续集成和自动部署
  • 省去配置繁琐的守护进程设置
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-23 01:15

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表