Docker如何部署dotnet nginx? (不带.csproj)

时间:2019-12-09 13:27:26

标签: c# .net docker kubernetes yaml

您好,我想在docker中部署:.net,kestrel和nginx。 我有一个不带.csproj的项目程序集(可能或需要.csproj吗?) 但是,当我尝试在Docker中部署.net项目时,状态为Exitet。


Dockerfile

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS内置环境

WORKDIR / app

复制。

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2

WORKDIR / app

复制。

80号博览会

ENTRYPOINT [“ bash”]

CMD [“ build1”,“ WebApplication4.dll”]


我的项目文件

appsettings.Development.json

appsettings.json

Dockerfile

WebApplication4

WebApplication4.deps.json

WebApplication4.dll

WebApplication4.pdb

WebApplication4.runtimeconfig.json

WebApplication4.Views.dll

WebApplication4.Views.pdb

web.config

wwwroot


docker ps --all

容器ID图像命令创建的状态端口名称

0f1880a89999 build1“ bash build1 WebAppl…” 4秒前退出(127)3秒前sleepy_bardeen


如果您有解决方法。答案。

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS最终版本

WORKDIR / app

80号博览会

复制。

ENTRYPOINT [“ dotnet”,“ WebApplication4.dll”]

现在。我试图找到决定如何添加nginx和kestrel的决定?

2 个答案:

答案 0 :(得分:2)

Microsoft建议使用NGINX作为.NET Core应用程序的反向代理。您需要构建映像并在dockerfile中安装NGINX。

例如:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS final

# Nginx
RUN apt update && \
    apt install -y --no-install-recommends nginx && \
    rm -rf /var/lib/apt/lists/* && \
    apt clean && \
    rm /etc/nginx/nginx.conf
COPY MyProject/docker/nginx.conf /etc/nginx/nginx.conf

WORKDIR /app
ENV ASPNETCORE_URLS http://+:4000
EXPOSE 4000 80

如您所见,我正在dockerfile中安装NGINX并公开400080端口号。在nginx.conf文件中,NGINX监听端口80,并将请求传递到4000,这是我的.NET Core应用程序监听的端口。

您可以在本文中找到更多信息:https://piotrgankiewicz.com/2017/06/12/asp-net-core-deployment-using-docker-nginx-and-ubuntu-server/

答案 1 :(得分:0)

谢谢。现在尝试添加Nginx,并对Nginx Welcom默认页面有问题。

nginx

Dockerfile

从FROM Nginx 复制nginx.conf / etc / nginx / COPY默认/ etc / nginx / sites-enabled /

docker-compose.yaml

版本:“ 3” 服务:   网络:     构建:./build2     暴露:     -“ 80”

nginx:     构建:./ nginx     container_name:ngix-dotnet     端口:       -“ 80:80”