我们有一个在Ubuntu 18.04下运行的ASP.Net应用程序(安装了aspnetcore 2.2,仅运行时)。我们使用kestrel服务来提供应用程序,并使用nginx作为反向代理。安装在VM /云实例中后,一切运行正常。 现在,我希望对我们的应用程序进行容器化(仅测试水域)。因此,我使用以下dockerfile构建了一个映像:
FROM ubuntu:18.04
RUN apt-get update && \
apt-get -y install software-properties-common wget && \
wget -q -O /opt/packages-microsoft-prod.deb https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb && \
dpkg -i /opt/packages-microsoft-prod.deb && \
add-apt-repository universe && \
apt-get update && \
apt-get install -y apt-transport-https aspnetcore-runtime-2.2 nginx
COPY default /etc/nginx/sites-available/default
COPY appfolder /opt/
ENTRYPOINT ["dotnet", "/opt/appfolder/app.dll"]
EXPOSE 80:80
但是,当我尝试运行该映像时,出现以下错误:
您是要运行dotnet SDK命令吗?请安装dotnet SDK 来自:https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
任何想法可能出什么问题吗?我的假设是(是Docker世界的新手): 使用Ubuntu 18.04作为基本映像,并在顶部安装Dotnet和Nginx,然后复制nginx默认站点并运行该应用程序(使用dotnet)。显然,我缺少了一些东西。
答案 0 :(得分:0)
根据Microsoft文档here。
您需要运行
sudo apt-get update
之后
sudo apt-get install -y apt-transport-https
之前
sudo apt-get install aspnetcore-runtime-2.2