前幾天部署了一個(gè)網(wǎng)站,,原來我一直是發(fā)布完成之后,,通過ftp把文件上傳上去,有幾個(gè)大佬給我說了多階段構(gòu)建,,此時(shí)我就不需要發(fā)布再搞了,,直接將項(xiàng)目添加docker支持。
#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
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["amusinghoS.App/amusinghoS.App.csproj", "amusinghoS.App/"]
COPY ["amusinghoS.Entity/amusinghoS.EntityData.csproj", "amusinghoS.Entity/"]
COPY ["amusinghoS.Shared/amusinghoS.Shared.csproj", "amusinghoS.Shared/"]
COPY ["amusinghoS.Services/amusinghoS.Services.csproj", "amusinghoS.Services/"]
COPY ["amusinghoS.Redis/amusinghoS.Redis.csproj", "amusinghoS.Redis/"]
RUN dotnet restore "amusinghoS.App/amusinghoS.App.csproj"
COPY . .
WORKDIR "/src/amusinghoS.App"
RUN dotnet build "amusinghoS.App.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "amusinghoS.App.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "amusinghoS.App.dll"]
其中最重要的就是那幾個(gè)COPY ,,只要是和你這個(gè)項(xiàng)目有依賴的,,統(tǒng)統(tǒng)打包,構(gòu)建成一個(gè)鏡像,。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
error_page 500 502 503 504 /50x.html;
location / {
proxy_pass http://39.104.53.29:1314;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
}
}
}
|