您好,我想在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的决定?
答案 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并公开4000
和80
端口号。在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”