Docker 发布 Abp net core web 服务
程序员文章站
2022-07-11 10:15:00
Docker 发布 Abp net core web 服务 准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是Single Page Web Application) 安装docker :参考:http://ww ......
docker 发布 abp net core web 服务
-
准备工作:abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/templates (本例使用的是single page web application)
-
安装docker :参考:
- 安装成功后注册docker 账号
-
-
创建数据库容器参考:
-
执行命令: docker pull mcr.microsoft.com/mssql/server:2017-latest 拉取映像
- 执行命令创建映像容器:docker run -e 'accept_eula=y' -e 'sa_password=<填写一个账号密码'> -p <本机端口>:<服务器端口> --name sql1 -d mcr.microsoft.com/mssql/server:2017-latest
- 注意:<> 括号内是你要替换的内容, - p 后面两个端口的作用是将容器内的端口映射到本地端口,例如:映像中的mssql 的端口是1433,映射到本地的8099 就是:-p 6900:1433
- 测试一下,用 vs 连接docker 上的mssql
-
对容器内的数据库经行数据库迁移
- 更改abp 项目 abpcompanyname.abpprojectname.migrator 下的appsetting.json 中的连接字符串为,你创建容器的连接 "data source=<本机ip>,<docker 映射的端口>;initial catalog=<你创建的数据库>;user id=sa;password=<你的数据库密码>"
- 替换数据库连接后运行程序经行迁移
- 发布web
- 在host 项目下创建 dockerfile 注意将 abpcompanyname.abpprojectname.web.host.dll 替换成你启动的程序集名称.dll
from microsoft/dotnet:latest copy . /app workdir /app expose 80/tcp entrypoint ["dotnet", "abpcompanyname.abpprojectname.web.host.dll"]
- 设置 dockerfile 生成方式
- 发布代码
- 构建映像 ,在发布目录下运行命令: docker build -t 映像名称 . 这里注意结尾不要漏了空格跟“.“
- 创建并运行容器
-
执行命令: docker run -it -p <本地端口>:<容器端口> <映像名称>
执行后可以看出,程序默认绑定容器的80端口,因此我们需要在本地*问容器内的web,我们必须设置映像端口为80(根据实际情况绑定端口)
本例子中上面创建了myabp/demo容器,且程序运行的端口为80,因此我想在本机上8078端口访问服务命令就是: docker run -it -p 8078:80 myabp/demo
- 浏览网址: 结果如下 ,powershell 可以直接关掉,服务会继续挂在docker 上面
- 用vscode 打开vue 项目修改 vue/src/lib/url.ts 修改url 为我们docker 上发布的服务地址
-
命令终端在 vue 目录下运行 npm run serve
点开浏览地址可以看到前端已经请求docker 上的服务地址,默认账号 admin 密码123qwe
-
如果有需要的同学可以允许npm rum build 打包前端代码再发布到docker 或者iis上面都可以,
- 在host 项目下创建 dockerfile 注意将 abpcompanyname.abpprojectname.web.host.dll 替换成你启动的程序集名称.dll
如果前端访问失败,有可能是服务上没有添加跨域配置哦~
推荐阅读
-
详解.NET Core+Docker 开发微服务
-
详解ASP.NET Core 网站发布到Linux服务器
-
.net core3.0部署Linux服务器 使用Docker容器和Nginx反代理教程
-
ASP.NET Core Web程序托管到Windows 服务
-
详解.NET Core+Docker 开发微服务
-
详解ASP.NET Core 网站发布到Linux服务器
-
Centos7+Docker+Jenkins+ASP.NET Core 2.0自动化发布与部署的实现
-
.NET Core利用skiasharp文字头像生成方法教程(基于docker发布)
-
abp(net core)+easyui+efcore仓储系统——创建应用服务(五)
-
使用.NET Core搭建分布式音频效果处理服务(七)使用Docker压榨性能极限