我遇到了一个恼人的问题,我的容器化应用程序在本地运行良好,但部署到Azure时失败,尽管端口已正确公开。
>
没有docker:节点应用程序。js
通过https://localhost:443
使用docker:docker构建-t myapp:latest
thendocker run-p 49160:443-d myapp:latest
通过https://localhost:49160
在这两种情况下,我都从我的nodejs应用程序中获得了预期的输出:
Running in production on x64
Express HTTPS server listening on port 443
mongo :: connected to database mydb at mydb-tot7b.azure.mongodb.net
(显然,myapp和mydb不是实际名称。此处使用是为了方便。)
配置不足-
PORT=443
WEBSITES_PORT=443
DOCKER_ENABLE_CI=true
管道设置拉取docker镜像myrepo/myapp:private docker Hub repo on build的最新版本
。正确地提取图像。失败通过https://myapp.azurewebsites.net/错误为503,服务暂时不可用。
Azure日志:
2020-04-10 18:02:21.040 INFO - Pulling image: myrepo/myapp:latest
2020-04-10 18:02:22.128 INFO - latest Pulling from myrepo/myapp
2020-04-10 18:02:22.129 INFO - Digest: sha256:982[...]
2020-04-10 18:02:22.129 INFO - Status: Image is up to date for myrepo/myapp:latest
2020-04-10 18:02:22.131 INFO - Pull Image successful, Time taken: 0 Minutes and 1 Seconds
2020-04-10 18:02:22.143 INFO - Starting container for site
2020-04-10 18:02:22.144 INFO - docker run -d -p 7909:443 --name myapp_0_138f197c -e PORT=80 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITES_PORT=443 -e WEBSITE_SITE_NAME=myapp -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=myapp.azurewebsites.net -e WEBSITE_INSTANCE_ID=6fc3[...] myrepo/myapp:latest
2020-04-10 18:02:22.144 INFO - Logging is not enabled for this container.Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2020-04-10 18:02:23.473 INFO - Initiating warmup request to container myapp_0_138f197c for site myapp
2020-04-10 18:02:45.304 INFO - Waiting for response to warmup request for container myapp_0_138f197c. Elapsed time = 21.8308149 sec
[...]
2020-04-10 18:06:08.252 INFO - Waiting for response to warmup request for container myapp_0_138f197c. Elapsed time = 224.7791547 sec
2020-04-10T18:02:24.893958779Z Running in production on x64
2020-04-10T18:02:26.275376640Z Express HTTPS server listening on port 80
2020-04-10T18:02:26.601261213Z mongo :: connected to database mydb at mydb-tot7b.azure.mongodb.net
2020-04-10 18:06:14.346 ERROR - Container myapp_0_138f197c for site myapp did not start within expected time limit. Elapsed time = 230.8732099 sec
2020-04-10 18:06:14.365 ERROR - Container myapp_0_138f197c didn't respond to HTTP pings on port: 443, failing site start. See container logs for debugging.
2020-04-10 18:06:14.427 INFO - Stoping site myapp because it failed during startup.
为什么容器化应用程序似乎启动正确(如azure日志中所示),但容器无法响应443上的HTTP ping,这在dockerfile和azure中都是公开的,并带有端口和端口
我需要让我的HTTPS服务器显式响应HTTP PING吗?如果需要,我该怎么做?
Dockerfile:
FROM node:12
WORKDIR /usr/src/myapp
COPY package*.json ./
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
RUN npm install
COPY . .
EXPOSE 443
CMD [ "node", "app.js" ]
这个问题可能被认为是重复的,但与下面的大多数问题相比,我提供了更多的相关信息。此外,我花了大量时间进行故障排除,但这些相关资源似乎都没有帮助:
Docker从未在Azure上运行-等待对容器预热请求的响应
我自己的应用程序一直在做应用程序。在启动中使用HttpSreDirection()
。配置。这就是我犯这个错误的原因。我一停止那样做,问题就消失了。
在应用服务级别强制执行HTTPS时,将发生TLS终止,流量将路由到容器端口,因此无需从容器强制执行TLS。
如果您的容器侦听另一个端口(例如:8081),只需将端口应用程序设置设置为该端口号。应用程序服务将侦听端口80并将流量转发到您的容器端口。
问题内容: 我遇到错误了; 问题答案: 错误是 看来您有一个指的是您尚未声明的。 您需要具有以下声明
我已经将python:3.8-slim-buster映像部署到应用程序服务中。一般来说,它运行正常,因为我可以在日志中看到处理过程,但是运行状况检查机制尝试ping托管服务器,但没有响应,因为它只是在循环中运行并处理队列中消息的代码。这很好,但应用程序将因以下错误而终止: 是否有办法删除此等待响应容器预热请求的
在读取之前,我就会出现以下错误(我从中知道这一点)。 貌似是这句台词引起的: 这是使工作所需的,如本文所述(实际上,WebServlet在任何项目中没有就无法工作。我和其他人有一些使用的工作项目)。 虽然我没有这些文件,但我也有一个工作项目没有这些文件,所以它们显然不是必需的。我试着创建那个日志文件,因为它看起来像是Juli想告诉我什么。唉,它打开了,但没有向其中写入任何内容。 还显示,在打印异常
首先,我知道有几个类似的问题,我尝试了答案中的建议,但没有帮助。 我有一个ASP。NET核心web应用程序作为Linux容器运行。该应用程序在本地构建并运行良好。部署到Azure时,应用程序无法启动,我可以看到以下错误: 站点mytestapp的容器mytestapp_0_560a15e8未在预期时间限制内启动。运行时间=230.4559912秒 容器mytestapp_0_560a15e8未响应
问题内容: 我有一个嵌入式Tomcat服务器,可以 很好地提供静态文件。 但是,当我添加开始工作所需的buildPath代码时,它在我的一个项目中不起作用(项目之间存在很多差异……价值约5万行)。 在读取之前,我收到以下错误(我从中知道)。 似乎是由以下行引起的: 这是需要做的工作,如所描述这里(实际上,WebServlet确实没有不工作,在任何项目中,我和其他人使用的一些工作项目)。 显示Tom
我正在部署一个web应用程序,它在Azure应用程序服务上使用NodeJS、Express和React(插入我的BitBucket repo),但我没有发现成功。要么部署失败,要么声称部署成功,但该站点无法访问,并且一直超时。当我在Azure诊断中检查Docker日志时,我注意到以下几点: 在几个读取