使用Docker WildFly和wildfly-maven-plugin實現Java應用容器化

banq發表於2022-12-04

假設你已經有了一個war包,使用WildFly Docker映象來建立應用映象:
將以下內容加入一個新 Dockerfile 映像

FROM quay.io/wildfly/wildfly
ADD target/microprofile-config.war /opt/jboss/wildfly/standalone/deployments/


執行:
docker build -t wildlfy-app .

在這種新架構下,WildFly的供應(提供下載和建立適合應用要求的WildFly發行版的能力)由Maven外掛org.wildfly.plugins:wildfly-maven-plugin處理。

我們可以將其新增到應用程式的pom.xml的<build>部分,以便在Maven執行軟體包目標時提供WildFly。

<plugin>
  <groupId>org.wildfly.plugins</groupId>
  <artifactId>wildfly-maven-plugin</artifactId>
  <version>4.0.0.Beta2</version>
  <configuration>
    <feature-packs>
      <feature-pack>
        <location>org.wildfly:wildfly-galleon-pack:26.1.1.Final</location>
      </feature-pack>
    </feature-packs>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>package</goal>
      </goals>
    </execution>
  </executions>
</plugin>


如果我們再次執行mvn clean package,wildfly-maven-plugin將使用其功能包配置WildFly。
一旦maven完成,將有一個包含WildFly和應用程式部署的目標/伺服器目錄。

你可以直接從./target/server/bin/standalone.sh目錄中執行WildFly,其中部署有應用程式。
應用程式的pom.xml控制著應用程式的全部執行時間。你不再需要安裝WildFly,建立部署並在WildFly中部署。相反,WildFly的安裝和部署是作為Maven構建過程的一部分完成的。你可以把pom.xml看作是應用程式的中心點,它由WildFly執行時和部署檔案組成。

如果你想建立一個應用程式映象,你可以改變Dockerfile以使用這個執行時映象,並將target/server加入其中。

FROM quay.io/wildfly/wildfly-runtime-jdk11
COPY --chown=jboss:root target/server $JBOSS_HOME
RUN chmod -R ug+rwX $JBOSS_HOME



原始碼:GitHub repository.

相關文章