本次是.NET6项目在Visual Studio中“发布”后的代码进行打包镜像部署。
发布配置如下图:
由于本地没有装docker,所以把发布后的文件拷贝到打包服务器,我用的是xftp8。
下一步准备dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base WORKDIR /app COPY . . # 设置环境变量,端口 #ENV ASPNETCORE_URLS= 发现这一步没用,注释了 ENTRYPOINT ["dotnet", "WebApi.dll"] #对应自己的dll名称
把以上内容存为名为Dockerfile的文件里面,对 没有后缀,然后拷贝到打包服务器同目录下。
接下来就是docker打包,先执行以下命令转至打包目录
cd /home/cmn/systemmsg
然后执行以下命令打包为镜像
sudo docker build -t system_msg .
-t 后面为打包镜像名称,可以随意修改,但是注意不能有大写字母,最后的 . 一定要
这时运行以下命令查看打包的镜像:
sudo docker images
然后运行以下命令启动一个实例
sudo docker run -d -p 8022:5090 --name system.msg system_msg
--name后面第一个为实例(容器)名称,再后面是镜像名称
-p 8022端口为外部访问端口,5090端口为 launchSettings.json 中 applicationUrl 中写的端口,不然运行不成功,这一点如何修改还没有去研究。
-d 为后台执行
然后执行以下命令查看实例(容器)列表(运行中的):
sudo docker ps
然后执行以下命令查看实例(容器)列表(所有的):
sudo docker ps -a
至此,发布完成