我使用asp dotnet开发了一个web应用程序,目前我在IIS上运行它无论如何我可以在docker容器中运行相同的应用程序,
我对Docker比较陌生,我玩过一段时间,我对docker compose很熟悉,所以我想知道我是否可以(停靠)我开发的应用程序。
我的Dockerfile现在看起来像:
$updatePage = function($page) use ($db) {
$stmt = $db->prepare('UPDATE members SET page = :page WHERE memberid = :memberid');
$stmt->execute(array(':memberid' => $_SESSION['memberID'], ':page' => $page));
$array = $stmt -> fetchAll(PDO::FETCH_ASSOC);
$_SESSION["page"] = $page;
header ('Location: memberpage.php?page=' . $_SESSION["page"]);
}
根据我的理解,这会在我的dotnet容器中创建一个目录并复制当前文件夹中的文件,该应用程序将在dotnet上运行
答案 0 :(得分:1)
你需要改变你的Dockerfile,试试这个:
#Making a dotnet container
FROM microsoft/iis
SHELL ["powershell"]
RUN Install-WindowsFeature NET-Framework-45-ASPNET ; \
Install-WindowsFeature Web-Asp-Net45
RUN Remove-WebSite -Name 'Default Web Site'
RUN New-Website -Name 'app' -Port 80 \
-PhysicalPath 'c:\app' -ApplicationPool '.NET v4.5'
#copy dll files and other dependencies
COPY app app
#dotnet run should run the app
CMD ["ping", "-t", "localhost"]
测试
docker build -t app .
docker run --name app -d -p 80:80 app
docker inspect --format="{{.NetworkSettings.Networks.nat.IPAddress}}" app
它会给你一个ip,只需在浏览器中测试它。