.netcore Dockerfile 部署
1.netcore3.1项目右击,添加docker支持,生成Dockerfile文件,可以设置为始终复制(生成或发布时都会含有Dockerfile文件)

2.修改Dockerfile文件内容
#引入镜像,低版本 docker 去掉 AS base
#换成别人做的阿里镜像
#FROM registry.cn-hangzhou.aliyuncs.com/newbe36524
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
#配置工作目录 相当于cd
WORKDIR /app
#暴露容器端口,此端口与程序运行路径一致,可
EXPOSE 80
#复制文件到工作目录
COPY . .
#ENV :配置系统环境变量,比如程序环境环境等在这里配置(开发、预发、线上环境)
#这里是配置程序运行端口 如果程序不使用默认的80端口这里一定要设置(程序运行端口)
ENV ASPNETCORE_URLS http://+:80
#设置时间为中国上海
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#设置debian系统
RUN sed -i 's#http://deb.debian.org#https://mirrors.aliyun.com#g' /etc/apt/sources.list
RUN apt-get update && apt-get install -y vim && apt-get install -y libgdiplus
#启动程序
ENTRYPOINT ["dotnet", "Test_Docker.dll"]
3.netcore3.1项目发布,跟普通项目一样右击发布到文件系统

4.将netcore发布的文件通过ftp上传至站点目录,并将Dockerfile上传至站点目录,cd切换到站点目录
6.生成netcore项目镜像
docker build -t netcore-test . 创建镜像
docker run -d -p 80:80 netcore-test 创建容器
docker run -itd --name netcore-test -p 8080:80 netcore-test 创建容器名称,端口对应关系
docker stop strange_hypatia 停止容器
docker rm 容器id
docker rmi 镜像id
docker rmi -f $(docker images -aq) 删除所有镜像
--------------------------------------------------续------------------------------------------------------
再项目目录中的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/aspnet:7.0 AS base WORKDIR /app EXPOSE 5005 ENV ASPNETCORE_ENVIRONMENT=Development ENV ASPNETCORE_URLS http://+:5005 FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build WORKDIR /src COPY ["Dev.DockerTest.csproj", "./"] RUN dotnet restore "./Dev.DockerTest.csproj" COPY . . WORKDIR "/src/." RUN dotnet build "Dev.DockerTest.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "Dev.DockerTest.csproj" -c Release -o /app/publish /p:UseAppHost=false FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "Dev.DockerTest.dll"]

浙公网安备 33010602011771号