0

我有一个基本的 web api (owin self host) 应用程序,它在我的本地 docker 工具箱 (windows) 中运行良好。

但是当我用 docker cloud 启动它时,它会启动,但在 5 或 6 秒后它会停止。我不知道该怎么办。我正在使用单声道:最新图像和我的云托管环境。是数字海洋。

这是代码

程序.cs:

        string address = "http://+:5000";
        using (WebApp.Start<Startup>(address))
        {
            Console.WriteLine("web api listening on port 5000");
            Console.Read();
        }

只是这个。

启动.cs

        HttpConfiguration config = new HttpConfiguration();

        config.Routes.MapHttpRoute(
          name: "DefaultApi",
          routeTemplate: "api/{controller}/{id}",
          defaults: new { id = RouteParameter.Optional });

        app.UseWebApi(config);

Dockerfile:

from mono:latest
run mkdir app
copy ./GAC/bin/Debug /app
workdir /app 
expose 5000
entrypoint ["mono"]
cmd ["GAC.exe"] // gac is the console app name.

而已。我通过键入来运行我的容器docker run -it -p 80:5000 myContainer。它运行时没有停止问题。我在 Windows 中构建了我的容器,所以我可能面临一些基于 unix 的问题。

你怎么看?有没有遗漏的地方?

4

2 回答 2

0

I found an answer. I dont know why, but the problem is code doesn't wait at all.

The above code is working.

    string address = "http://+:5000";
    using (WebApp.Start<Startup>(address))
    {
        Console.WriteLine("web api listening on port 5000");
        while(true){}
    }
于 2016-10-14T10:57:59.903 回答
-1

嗨,我假设您也有一个 API 控制器?另外,你在向 docker cloud 推送什么?我认为它是图像而不是容器?谢谢。

于 2016-06-02T08:48:27.327 回答