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

 

posted @ 2022-08-29 17:17  梦亦晓  阅读(378)  评论(0编辑  收藏  举报