我有這個Dockerfile我想用 gradle 構建一個 spring boot 專案然后運行它但是構建需要 100 秒才能完成但是在我的本地機器上它構建速度很快。我確定這是一個快取問題,但我不知道如何加快速度而且我對 Docker 有點陌生
FROM gradle:7.5.1-jdk11-alpine AS build
COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle clean build --no-daemon
FROM openjdk:11.0.11-jre-slim-buster
EXPOSE 8080
RUN mkdir /app
COPY --from=build /home/gradle/src/build/libs/*.jar /app/demo.jar
ENTRYPOINT ["java", "-jar", "/app/demo.jar"]
uj5u.com熱心網友回復:
在您的本地計算機上,您將擁有各種內容(node/npm、gradle、maven 等)的本地快取,這意味著那些重復的任務會更快。然而,在 docker 鏡像構建中,基本上你總是從基礎鏡像中的空白/干凈快取開始,因此它需要重新提取所有內容。
如果您真的想加快速度,您可以查找快取的存盤位置并可能在那里安裝一個卷以允許快取在影像構建之間持續存在,但這取決于您需要多久重建一次可能會或可能不會的影像增加很多價值。
uj5u.com熱心網友回復:
運行 gradle --no-daemon clean bootJar 并嘗試使用openjdk:11.0.11-jre-slim它比openjdk:11.0.11-jre-slim-buster 小
希望對你有幫助
uj5u.com熱心網友回復:
為 maven/gradle 構建 docker 鏡像可能會很慢,https: //github.com/GoogleContainerTools/jib 以某種方式幫助行程 Dockerize java 應用程式快得多。
對于 Spring-boot
我知道這與解決方案的觀點不同Dockerfile,但在使用此工具后,不再關注 Dockerfile,而是關注 docker-compose(用于部署問題)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/535519.html
上一篇:如何限制docker的記憶體使用
