当前位置: 首页 > 知识库问答 >
问题:

容器化Quarkus待办事项应用程序在部署在 AWS 法盖特集群上时无法正常启动

牧梓
2023-03-14

我已经在GitHub中提出了这个问题,请参阅https://github.com/quarkusio/todo-demo-app/issues/16#但被指向了这里。

我创建了一个 Docker 映像,用于在 DEV 模式下运行Quarkus待办事项列表应用程序(即使用 H2 数据存储),并使用此 Docker 文件:

FROM openjdk:8-jdk-alpine
LABEL xxx xxx xx@xx
USER root
RUN wget https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz -P /tmp 
RUN tar xf /tmp/apache-maven-3.6.3-bin.tar.gz -C /opt 
RUN ln -s /opt/apache-maven-3.6.3/bin/mvn /usr/bin/mvn 
RUN mkdir -p /usr/share/quarkus
COPY quarkus.tar.gz /usr/share/quarkus
RUN tar -xzf /usr/share/quarkus/quarkus.tar.gz -C /usr/share/quarkus
RUN rm -f /usr/share/quarkus/quarkus.tar.gz
EXPOSE 8080
CMD ["sh", "-c", "cd /usr/share/quarkus; mvn compile quarkus:dev"]

在我的Windows docker桌面上本地运行此映像时,应用程序运行良好。启动后控制台输出的最后一行如预期所示:

Hibernate: INSERT INTO todo(id, title, completed, ordering, url) VALUES (nextval('hibernate_sequence'), 'Visit Quarkus web site', false, 2, 'https://quarkus.io') Hibernate: INSERT INTO todo(id, title, completed, ordering, url) VALUES (nextval('hibernate_sequence'), 'Star Quarkus project', false, 3, 'https://github.com/quarkusio/quarkus/') 2020-10-24 11:58:57,417 INFO [io.quarkus] (main) Quarkus 0.15.0 started in 3.878s. Listening on: http://[::]:8080 2020-10-24 11:58:57,422 INFO [io.quarkus] (main) Installed features: [agroal, cdi, hibernate-orm, hibernate-validator, jdbc-h2, narayana-jta, resteasy, resteasy-jsonb]

然而,当传输到Amazon AWS ECR,然后使用ECS Fargate集群部署到那里时,该映像无法正常启动。当通过分配的公共IP(http://54 . 86 . 53 . 85:8080/todo . html)打开应用URL时,浏览器只是显示一个没有内容的空白页面。尽管如此,应用程序的浏览器标签标题显示正确。在这种情况下,启动后控制台输出的最后几行是:

INSERT INTO todo(id, title, completed, ordering, url) VALUES (nextval('hibernate_sequence'), 'Introduction to Quarkus', true, 0, null) 2020-10-24 12:11:03 Hibernate: Hibernate: 2020-10-24 12:11:03 2020-10-24 12:11:03 alter table Todo alter table Todo 2020-10-24 12:11:03 add constraint UK_oxfuur9jdyqshux5rm7g7ga6c unique (title) add constraint UK_oxfuur9jdyqshux5rm7g7ga6c unique (title) 2020-10-24 12:11:03 id bigint not null, id bigint not null, 2020-10-24 12:11:03 completed boolean not null, completed boolean not null, 2020-10-24 12:11:03 ordering integer, ordering integer, 2020-10-24 12:11:03 title varchar(255), title varchar(255), 2020-10-24 12:11:03 url varchar(255), url varchar(255), 2020-10-24 12:11:03 primary key (id) primary key (id) 2020-10-24 12:11:03 ) )

可以看到,在本地运行映像的控制台输出的末尾显示的消息正在侦听:http://[:]:8080在这里丢失。

有没有人知道AWS案例中出了什么问题?

在要在ECS Fargate集群内创建以运行容器的ECR任务中,我明确启用了通过端口8080的通信。是否必须对夸克待办事项日志消息在64572上建立TCP套接字和/或监听地址为5005的传输dt_socket采取特殊预防措施?

我知道本机编译模式在这里可能更有意义;但我仍然是整个领域的新手,并将保留它作为未来的选择。


共有1个答案

佟阳焱
2023-03-14

我可以使用这个docker文件自己解决这个问题:

FROM azul/zulu-openjdk-alpine:11
LABEL xx xx xx@xxx
USER root
RUN mkdir -p /usr/share/quarkus
COPY quarkus-target.tar.gz /usr/share/quarkus
RUN tar -xzf /usr/share/quarkus/quarkus-target.tar.gz -C /usr/share/quarkus
RUN rm -f /usr/share/quarkus/quarkus-target.tar.gz
EXPOSE 8080
CMD ["sh", "-c", "cd /usr/share/quarkus; java -jar target/todo-backend-1.0-SNAPSHOT-runner.jar"]

这里,夸库-目标.tar.gz是运行 mvn 包后目标目录的压缩包

 类似资料:
  • 多年来,我一直在这个网站上看到有人问这个问题,但没有一个解决方案对我有效。我正在尝试使用AWS Elastic Beanstalk启动spring boot应用程序。我得到了“502坏网关nginx/1.20.0”错误,许多其他人都得到了。查看我的日志,上面写着“连接()失败(111:连接被拒绝),同时连接到上游,客户端:172.31.16.189,服务器:,请求:“GET/HTTP/1.1”,上

  • 我是云提供商的初学者,我有一个网站要部署。该网站使用PHP、HTML、CSS和Javascript创建,并使用在NodeJS上开发的API访问数据库。 有没有办法在一个AWS弹性豆茎应用程序上部署所有这些(Inteface+NodeJS API)?或者我应该只在AWS Elastic Beanstalk上部署API,而将网站的界面与其他AWS解决方案一起部署,例如Amazon S3上的静态网站。

  • 我有一个非常简单的Helloworld应用程序,它显示编码>消息。 我想在安装了MicroK8s的Ubuntu节点上部署该应用程序。 步骤如下: git克隆项目\u repo\u url\u此处 使用创建图像/mvnw k8s:构建 使用应用资源/mvnw k8s:资源 使用部署应用程序/mvnw k8s:部署 我能够使用命令,也可以使用命令查看映像,但无法使用和命令 波姆。xml Hellowo

  • 我无法在Tomcat 6上部署Grails 2.2.4应用程序。我尝试了新安装的tomcat,甚至我的应用程序的旧版本(以前运行过)。 此异常在一分钟后引发。在tomcat启动后: 我真的不知道从哪里开始修理它-/

  • 我的android应用程序没有正确构建和部署。当启动一个新实例时,它会将我的应用程序启动到我的物理移动设备上,并且我能够在Visual Studio中进行调试。但现在它不会将应用程序启动到移动设备,而且当我手动运行应用程序时,它也不会在Visual Studio中调试。这个项目有可移植的类,并且正在使用Xamarin.Forms。 我确实更改了对AndroidManifest.xml的构建操作。

  • 我试图将spring boot应用程序部署到外部tomcat,在catalina.log文件中出现如下异常。 war文件名为:com#myapp.war。