珂珂的个人博客 - 一个程序猿的个人网站

docker 部署asp.net core

之前一直没整这个,今天来尝试下。

首先新建项目勾选docker支持,平台选择Linux

接着将整个解决方案上传的Linux服务器上

然后cd 到解决方案sln 的下层文件夹,即csproj项目文件有Dockerfile的那个文件夹。

然后按照微软官方文件运行

docker build -t fyjwebapp .

这里会报错

COPY failed: file not found in build context or excluded by .dockerignore: stat WebApplication1/WebApplication1.csproj: file does not exist

于是我转到上一层sln解决方案那个文件夹执行

docker build -t fyjwebapp ./WebApplication1

还是会报错COPY failed: file not found in build context or excluded by .dockerignore: stat WebApplication1/WebApplication1.csproj: file does not exist

看这个报错路径再打开Dockerfile查看内容感觉应该是将Dockerfile文件复制到sln 解决方案的文件夹。

然后运行

docker build -t fyjwebapp .

果然成功了。

然后启动容器

docker run -it --rm -p 5000:8080 --name fyjwebapp_sample fyjwebapp

--rm 表示在容器退出时自动删除

如果后台运行将 -it 改为 -itd

访问主机:5000  成功


第二种

实现上传编译后的文件夹并部署到docker 

将网站编译后的bin目录上传到Linux服务器,新建Dockerfile 文件

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app
COPY / ./
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

  注意COPY 这一行,官方是COPY published/ ./  因为我没用dotnet publish -c Release -o published  命令生成目录

启动容器和上面一样


删除映像

docker rmi fyjwebapp




上一篇:个人代码全部开源

下一篇:AMD 5800H 小主机折腾记


0 评论

查看所有评论

给个评论吧