.net core3.1 项目用docker打包及部署
时间: 2023-11-29 20:04:40 浏览: 238
Springboot项目docker打包
5星 · 资源好评率100%
将 .NET Core 3.1 项目用 Docker 打包并部署的步骤如下:
1. 在项目根目录下创建一个 Dockerfile 文件,文件内容如下:
```
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out
# Build runtime image
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "YourProject.dll"]
```
其中,第一行指定了基础镜像为 .NET Core SDK 3.1,第二行指定了工作目录为 /app。接下来,将项目的 csproj 文件复制到容器中,并执行 dotnet restore 命令安装项目依赖。然后,将整个项目复制到容器中,并执行 dotnet publish 命令将项目编译成可执行文件。最后,指定基础镜像为 .NET Core 3.1 运行时,将编译好的可执行文件复制到容器中,并指定入口点为 YourProject.dll。
2. 在项目根目录下执行以下命令,将项目打包成 Docker 镜像:
```
docker build -t your-image-name .
```
其中,your-image-name 为自定义的镜像名称。
3. 将镜像上传到 Docker Hub 或私有镜像仓库:
```
docker push your-image-name
```
4. 在目标服务器上安装 Docker,并从 Docker Hub 或私有镜像仓库中拉取镜像:
```
docker pull your-image-name
```
5. 运行容器:
```
docker run -d -p 80:80 your-image-name
```
其中,-d 表示容器在后台运行,-p 表示将容器的 80 端口映射到主机的 80 端口,your-image-name 为之前打包的镜像名称。
至此,.NET Core 3.1 项目已经成功打包并部署到 Docker 容器中了。
阅读全文