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

使用IntelliJ部署Docker-WAR中的应用服务器

汪兴为
2023-03-14

我正在考虑用docker容器来设置我的开发,因为我目前正在windows上工作,我的设置现在如下所示:

>

  • 包含已启动并已运行的jboss的docker映像

    hg repo签出在我的windows文件系统中,该文件系统导入到IntelliJ中

    >

  • 使用maven重新生成jar,并将其复制到$the_shared_folder/mywar.war/web-inf/lib/

    触摸文件mywar.war.redeploy

    然而,这使得从代码更改到结果的周转时间大约为30秒。这里出现了一个相当开放的问题:什么是开发在docker映像中运行的应用服务器的好方法?今天过得好吗?您是否尝试过类似的方法,并认为docker容器不适合这样做?

  • 共有1个答案

    澹台俊晖
    2023-03-14

    以下是我如何解决你正在提出的问题:

    >

  • 假设您使用的是Intellij Docker插件-从Intellij 14.1开始就支持它
  • 我正在使用maven将war复制到位于我的project Web-App下的名为docker的目录中。
  • Docker目录包含用于构建Docker映像的DockerFile
  • 在Docker文件中,我将打包的war文件复制到Docker映像,创建管理用户以访问端口9990上的管理控制台,并加载JBoss

    Dockerfile内容:

    
    FROM jboss/wildfly
    MAINTAINER e.dahari@company.com
    ADD your-awesome-app.war /opt/jboss/wildfly/standalone/deployments/
    RUN /opt/jboss/wildfly/bin/add-user.sh admin Admin#70365 --silent
    CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]
    
    {
        "_comment" : "My service",
        "Image": "your-awesome-app-name",
        "HostConfig": {
            "PortBindings":{
                "9990/tcp": [{ "HostIp": "0.0.0.0", "HostPort": "9990" }]
        },
        "RestartPolicy": { "Name": "on-failure", "MaximumRetryCount": 5 }
    }

    请注意,在首次构建Docker映像后,由于Docker缓存映像更改,连续的配置运行速度要快得多。
    由于Docker映像中唯一的更改是war文件,所以下一次配置运行将只传输映像的这一部分。

    通常,在缓存Docker文件中的每个操作时,将变化最大的组件放在Docker文件的最后是很重要的。

    希望我能帮上忙。

  •  类似资料:
    • 我想将Redmine Docker映像部署到Azure App Services,并将其指向部署到Azure数据库for MySql服务器的MySql实例。这将为我提供一个完全管理的体系结构。我已经创建了一个MySql实例,可以使用MySql Workbench从本地PC连接到它。不幸的是,我部署到应用服务的Redmine Docker映像无法启动。日志显示:实例******上的Docker经历了

    • 我想用maven部署一个小型Web应用程序。我下载并配置了tomcat,并告诉IntelliJ在Run/Debug config中使用它,如下所示。我还将其配置为构建神器“战争爆炸”。 问题是,每次我运行项目时,都会出现一个错误,即: 工件JDBCTest:war:服务器未连接。部署不可用。 这是我的带有错误日志的dropbox,pom。xml、servlet类等。 我真的需要一些建议。

    • 我们最近从maven迁移到gradle,自迁移以来,我们在部署方面遇到了以下问题。 我们gradle.kts与战争有关的部分如下: 我们可以轻松地部署创建的工件,并在其主机端口上访问其endpoint。 然而,一旦我们部署了辅助工件(在不同的端口上),第一个部署的服务就会突然失败,并出现以下错误: 完整堆栈跟踪如下:https://gist.github.com/knyttl/25711ccd79

    • 有可能在Tomcat中部署一些java war或jar文件吗?我找了很多教程,我找到的唯一解决方案是将项目war文件复制到中。 我实际上使用了这个解决方案,但我想改进我的文档化。我的主要目标是当我用docker-comush运行我的两个映像(tomcat和db映像中的应用程序)时,我想使用tomcat中目标文件夹的本地war文件,当我在代码更改后再次构建war时,该更改将在不停止容器、删除和重建的

    • 这是我的配置:在这里输入图像描述 并且有控制台输出: 构建成功总时间:7秒错误:步骤“Deploy War/EAR to a Container”由于异常而中止:java.io.ioException:预期Ant GLOB模式,但看到“/home/zhaowz/.jenkins/jobs/huamei-farm-web/workspace/BUILD/huamei.war”。有关hudson.fi

    • 问题内容: 我已经将tomcat的webapps目录中的sample.war文件复制了。 我可以访问localhost:8080。 默认情况下,战争的部署是自动进行的-我已经在我的webapps文件夹中检查了提取的文件夹“ sample” 但未提取。为什么未提取war文件。请为此提供解决方案。 问题答案: 从目录中删除该战争文件。然后在您的Web浏览器中打开链接。单击“ Tomcat管理器”, 然