素材巴巴 > 程序开发 >

ASP.Net Core Angular应用使用Docker进行容器化部署(2)-- 在镜像中安装nodejs

程序开发 2023-09-03 16:17:10

ASP.Net Core Angular应用使用Docker进行容器化部署(2)-- 在镜像中安装nodejs

一、介绍

本文介绍ASP.Net Core Angular应用使用Docker进行容器化部署的第二种方法,主要是通过在dotnet sdk镜像中安装nodejs

二、环境

三、部署

1、添加Docker支持

在项目上右键,选择【添加】–【Docker支持…】

Docker支持

在弹出的Docker文件选项选择框中选择【Linux】选项,然后点击【确定】即可

Docker文件选项

2、生成镜像

可根据自己的项目调整一下Dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
 WORKDIR /app
 EXPOSE 80FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
 WORKDIR /src
 COPY . .
 RUN dotnet build "AngularDemo03.csproj" -c Release -o /app/buildFROM build AS publish
 RUN dotnet publish "AngularDemo03.csproj" -c Release -o /app/publishFROM base AS final
 WORKDIR /app
 COPY --from=publish /app/publish .
 ENTRYPOINT ["dotnet", "AngularDemo03.dll"]
 

然后打开项目所在的目录,当前目录中需包含Dockerfile文件,然后在地址栏中输入CMD并回车,打开CMD控制台

cmd

在CMD控制台上输入以下命令生成Docker镜像

docker build -t aspnetcore:v2.0 .
 

但是生成报错error MSB3073: The command "npm install" exited with codee 127.

生成错误

这是由于在进行发布操作时,是基于mcr.microsoft.com/dotnet/core/sdk:3.1-buster这个基础镜像的,这个镜像只有dotnet sdk,并没有安装npm

解决方案:

调整Dockerfile,在发布前在mcr.microsoft.com/dotnet/core/sdk:3.1-buster这个镜像中安装nodejs:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
 WORKDIR /app
 EXPOSE 80FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
 WORKDIR /src
 COPY . .
 RUN dotnet build "AngularDemo03.csproj" -c Release -o /app/buildFROM build AS publish
 # 安装nodejs
 RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -
 RUN apt-get install -y nodejs
 RUN dotnet publish "AngularDemo03.csproj" -c Release -o /app/publishFROM base AS final
 WORKDIR /app
 COPY --from=publish /app/publish .
 ENTRYPOINT ["dotnet", "AngularDemo03.dll"]
 

再次运行

docker build -t aspnetcore:v2.0 .
 

3、查看镜像

生成成功后,可以使用以下命令查看镜像

docker images
 

Docker镜像

4、使用镜像运行容器

可以通过以下命令运行一个容器

docker run -it -d -P aspnetcore:v2.0
 

运行容器

运行成功后可通过docker ps查看对应的端口,然后在浏览器访问这个端口即可

访问端口

当然,也可以通过-p命令指定端口,然后通过指定的端口访问即可

docker -it -d -p 5002:80 aspnetcore:v1.0
 ..(img-NdbmDskw-1589640134565)]当然,也可以通过`-p`命令指定端口,然后通过指定的端口访问即可
 

docker -it -d -p 5002:80 aspnetcore:v1.0


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。