docker部署.net core3.1项目
前提:
开发工具vs2022或者2019
.net core版本3.1
centos7.5
1.开发项目
注意数据库连接字符串的配置方式,默认mysql是用docker运行的,ip直接换成mysql容器名称即可。
修改appsettings.json
Data Source=mysql mysql为容器名称
"ConnectionStrings": { "DefaultConnection": "Data Source=mysql;port=3306;Initial Catalog=testdb;user id=root;password=密码;Charset=utf8;SslMode = none;", "DataProvider": "MySql"
2.启用docker支持(如果创建项目时没有启动)
项目->右键->添加->docker支持
3.修改Dockerfile文件
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. #基础镜像 FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base #解决验证码不显示问题,异常信息:Unable to load shared library 'gdiplus' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libgdiplus: cannot open shared object file: No such file or directory RUN apt-get update RUN apt-get install libgdiplus -y #设置工作目录 WORKDIR /app #暴露的端口要和代码中Program文件 webBuilder.UseUrls("http://*:8080");保持一致 EXPOSE 8080 #复制文件到工作目录/app COPY . . #启动程序 ENTRYPOINT ["dotnet", "Cloud.Boss.dll"]
4.发布项目
项目->右键->发布
5.上传发布后的文件到centos指定的目录下/mydocker/netcore/cloudboss
6.使用xshell登录centos,进入到目录/mydocker/netcore/cloudboss
cd /mydocker/netcore/cloudboss
7.将项目打包成docker镜像
注意一下,libgdiplus安装速度很慢的,可以先试用libgdiplus构建一个基础镜像。以后使用自己构建的带libgdiplus的镜像。
docker build -t netcore_demo .
8.查看镜像
docker images
9.运行容器
docker run \ -d \ --network mynet \ --restart unless-stopped \ -p 8080:8080 \ --name netcore_demo \ -e TZ="Asia/Shanghai" \ netcore_demo
10.内网访问测试:
注意:外网访问的话端口要开启。
curl 127.0.0.1:8080
作者:梦亦晓,转载请注明出处
如果此文能给您提供帮助,请点击右下角的【推荐】
如果您对此文有不同的见解或者意见,欢迎留言讨论