簡體   English   中英

Maven 在 Docker 上構建和測試非常慢

[英]Maven build and tests very slow on Docker

我正在嘗試設置我的 Gitlab CI/CD 來為我的 Java/Maven/Spring Boot 應用程序編譯和運行測試。 我已經設置了 Gitlab Runner 並創建了 my.gitlab-ci.yml 並且一切正常,但是非常慢。 我為我的跑步者嘗試了許多配置,但沒有成功。

所以我退后一步,嘗試在我的本地機器上對 Docker 運行測試。

直接在我的機器上運行的構建 + 測試需要 17 分鍾。 在 docker 上運行的構建 + 測試需要超過 1 小時。

我得到的最佳性能是使用這個 docker 命令:

docker run -it --rm --name comp2 --mount type=bind,source="C:/ProjetosJava/eaud",destination=/usr/src/mymaven -e MAVEN_OPTS='-Xdebug -Xnoagent -Djava.compiler=NONE -Xmx4096m -Xms1024m -XX:MaxPermSize=1024m -Dmaven.repo.local=.m2/repository -XX:+TieredCompilation -XX:TieredStopAtLevel=1' -w /usr/src/mymaven maven:3.3-jdk-8 /bin/bash

在 bash 里面我做了:

mvn -s.m2/settings.xml clean compile test

我需要在 docker 內部構建,以便在最短的時間內(17 分鍾)。

發現問題,是Maven Surefire插件。

默認情況下,surefire 將分叉 JVM,並且當它這樣做時,它不會從 mvn 命令繼承 JAVA_OPTS。

所以,我能夠通過將這些配置配置到插件來減少構建時間:

             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M5</version>
                <configuration>
                    <systemPropertyVariables>
                        <java.awt.headless>true</java.awt.headless>
                    </systemPropertyVariables>
                    <argLine>-Xms256m -Xmx1024m -XX:MaxPermSize=512m -Xverify:none -XX:TieredStopAtLevel=1 -XX:-TieredCompilation</argLine>
                    <printSummary>false</printSummary>
                    <forkCount>0</forkCount>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit47</artifactId>
                        <version>3.0.0-M5</version>
                    </dependency>
                </dependencies>
            </plugin>

秘密是: argLine 與-Xverify:none -XX:TieredStopAtLevel=1 -XX:-TieredCompilationforkCount=0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM