java - 如何使用 IntelliJ 在 Azure 上部署 Web 应用程序?
问题描述
我正在部署一个使用 IntelliJ 使用 azure 开发的 Web 应用程序。我使用 Azure 的 IntelliJ 工具包,
我有以下结果:
Stopping Web App...
Getting Deployment Credential...
Connecting to FTP server...
Uploading artifact to: /site/wwwroot/app.jar ...
Uploading successfully...
Starting Web App...
Deploy successfully!
URL: https://app.azurewebsites.net
当我点击网址时,我得到:“应用程序错误”,没有进一步的解释。
当我在本地运行我的(弹簧)应用程序时,一切正常。我的测试也运行良好。
我可以尝试什么来解决这个问题?我没有堆栈跟踪或诊断,所以我不知道从哪里开始。
编辑:
2019-01-09 08:32:55.358 INFO - Starting container for site
2019-01-09 08:32:55.359 INFO - docker run -d -p 42072:80 --name productidentifier_0 -e WEBSITE_SITE_NAME=productidentifier -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_INSTANCE_ID=7b3a533f561e7e09c1c0a936ab27adabbffe4ec239df09d0c46775c50b146a87 appsvc/java:8-jre8_0000000000
2019-01-09 08:32:55.362 INFO - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2019-01-09 08:33:09.102 ERROR - Container productidentifier_0 for site productidentifier has exited, failing site start
2019-01-09 08:33:10.855 INFO - Issuing docker pull: imagename =appsvc/java:8-jre8_0000000000
2019-01-09 08:33:11.645 INFO - docker pull returned STDOUT>> 8-jre8_0000000000: Pulling from appsvc/java
Digest: sha256:8d261d28da96cb59f1573ab9b0c826c642f47de9e290fd630f69448adca29dfd
Status: Image is up to date for 10.0.5.3:13209/appsvc/java:8-jre8_0000000000
2019-01-09 08:33:11.884 INFO - Starting container for site
2019-01-09 08:33:11.885 INFO - docker run -d -p 34512:80 --name productidentifier_0 -e WEBSITE_SITE_NAME=productidentifier -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_INSTANCE_ID=7b3a533f561e7e09c1c0a936ab27adabbffe4ec239df09d0c46775c50b146a87 appsvc/java:8-jre8_0000000000
2019-01-09 08:33:11.886 INFO - Logging is not enabled for this container.
Please use https://aka.ms/linux-diagnostics to enable logging to see container logs here.
2019-01-09 08:33:22.361 ERROR - Container productidentifier_0 for site productidentifier has exited, failing site start
2019-01-09 09:26:19.660 INFO - Issuing docker pull: imagename =appsvc/java:8-jre8_0000000000
2019-01-09 09:26:20.311 INFO - docker pull returned STDOUT>> 8-jre8_0000000000: Pulling from appsvc/java
Digest: sha256:8d261d28da96cb59f1573ab9b0c826c642f47de9e290fd630f69448adca29dfd
Status: Image is up to date for 10.0.5.3:13209/appsvc/java:8-jre8_0000000000
我找到了这个,这对我有什么帮助吗?似乎 docker 没有按应有的方式启动?
解决方案
根据您的描述,听起来您正在将 SpringBoot 应用程序作为可运行的 jar 文件部署到适用于 Linux 的 Azure 应用服务,这与从 IntelliJ 中的 Java Web 项目构建的 war 文件的部署不同。
Azure Toolkit for IntelliJ 的官方教程有两个,分别介绍了如何在 Azure App Service for Linux 上部署 war 文件或 jar 文件。
- 使用 Azure Toolkit for IntelliJ 将 Hello World Web 应用部署到云中的 Linux 容器
- 使用 Azure Toolkit for IntelliJ 将 Spring Boot 应用发布为 Docker 容器
我认为上面的第二个教程适合您当前的场景,请按照它检查您的部署步骤再试一次。
推荐阅读
- apostrophe - 如何在撇号 cms 主题 site.less 中添加字体
- javascript - 单独的日期字符串和时间字符串组合成一个解析的日期和时间戳
- android - 如何在 android studio 中创建这样的 ui?
- spring-mvc - 是否可以在同一个应用程序中同时使用 Spring Web MVC 和 Spring Reactive Web?
- firebase - 生成缩略图的 Firebase 云函数错误:spawn convert ENOENT
- linux - LINUX msgget 和 ftok
- reactjs - 字体机器人是为了什么?
- python - 从地图中解包值后分配变量
- django - Django:从多个对象中获取多对多对象
- c# - 检查一个单词是否包含不在字母数组中的字符