這里天研究netcore3.1部署在docker中,期間遇見了很多坑,下面大概講一下安裝過程
1.vs添加一個docker支持會生成一個dockerfile文件,但是那里面的代碼很多如果你用打包到文件夾的方式的話我覺得是不需要的,所以對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/core/aspnet:3.1-buster-slim AS base WORKDIR /app EXPOSE 80 EXPOSE 443 RUN apt-get update RUN apt-get -y install telnet RUN apt-get -y install iputils-ping RUN apt-get -y install vim COPY . . ENTRYPOINT ["dotnet", "Tourism.Api.dll"]
這里
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base需要時間很長,最好這之前確保你配置了docker鏡像加速,並且如果你選擇
mcr.microsoft.com/dotnet/core/runtime或者
mcr.microsoft.com/dotnet/core/sdk的話,應該都是會有問題的
依據這個文件
docker build -t api .
然后使用它構建一個容器的時候進入容器會在/app目錄下,
這里因為沒有vi、ping、telnet等命令,有時候需要進入測試一下網速修改個配置什么的不太方便,而且dotnet的鏡像是根據debian的系統做出來的,所以不能用rpm或者yum,即使你是centos的系統,
這是一個坑點,解決了如何在鏡像中用一些linux 的基礎命令和如何安裝基礎命令,可能會出現
debconf: delaying package configuration, since apt-utils is not installed
這樣的警告,注意,他不是錯誤,只是警告,具體可以谷歌一下,這個像我這里只是安裝一點點常用的linux命令,所以我不用管這些警告,我可以正常使用,到此,一個基本的鏡像就做好了