在VS.net新建.netCore8项目,生成项目的发布文件,之后添加Dockerfile,内容如下:
 
 FROM mcr.microsoft.com/dotnet/aspnet:8.0
 # 设置工作目录
 WORKDIR /app
# 挂载临时卷(类似于 VOLUME /tmp)
 VOLUME /tmp
# 复制应用所需的文件到容器
 ADD Web.Core.dll /app/Web.Core.dll
 ADD appsettings.Development.json /app/appsettings.Development.json
 ADD Web.Core.runtimeconfig.json /app/Web.Core.runtimeconfig.json
 ADD Web.Core.deps.json /app/Web.Core.deps.json
 ADD Web.Core.pdb /app/Web.Core.pdb
 ADD Web.Core.staticwebassets.runtime.json /app/Web.Core.staticwebassets.runtime.json
  
 ADD ./wwwroot/ /app/wwwroot/
# 确保文件存在
 RUN touch /app/Web.Core.dll
# 暴露端口
 EXPOSE 8080
# 启动命令(设置环境变量以指定配置文件)
 ENTRYPOINT ["dotnet", "Web.Core.dll"]
 
 #特别要注意:编辑右下角的CRLF  切换成LF,否则执行sh时报找不到文件的错误
 
 netcore.sh内容:
  
#!/bin/bash
  
 # 停止并移除当前运行的容器
 docker stop netcorerong
 docker rm netcorerong
# 移除旧的镜像
 docker rmi netcoreimg
# 创建目录权限
 mkdir -p /mydata/upload/netcore
 chmod 777 /mydata/upload/netcore
# 进入项目目录
 cd /mydata/docker/netcore
# 构建新的镜像
 docker build -t netcoreimg .
# 启动新的容器
 docker run -d -p 8080:8080 \
   -e TZ=Asia/Shanghai \
   --name netcorerong \
   --restart always \
   -v /mydata/upload/netcore:/app/upload/netcore \
   netcoreimg
# 查看容器的日志
 docker logs netcorerong -f