我正在嘗試在 docker 中運行一個 hello word java 應用程式。該應用程式由 gradle init 生成。我使用 gradle installDist 生成可運行檔案。我可以毫無問題地在本地運行可運行檔案。但是當我嘗試從 docker 運行時出現錯誤。這是docker檔案內容:
FROM gradle:7.1.0-jdk11 AS builder
WORKDIR /home/gradle/src
COPY --chown=gradle:gradle . /home/gradle/src
RUN gradle installDist
FROM openjdk:17-oracle
COPY --from=builder /home/gradle/src/build/install/app/ /app/
WORKDIR /app
CMD ["bin/app"]
docker 檔案與 build.gradle 放在同一檔案夾中,并且 docker build 命令從該檔案夾運行。構建成功運行。但是只要我在 docker GUI 中單擊運行,容器就會立即失敗并顯示錯誤訊息“xargs is not available”
uj5u.com熱心網友回復:
如錯誤所述,xargs不可用。
查看你的 Dockerfile,你使用的 jdk 鏡像是基于 Oracle Linux
所以你需要添加以下行,它會安裝所需的包
RUN microdnf install findutils
對于基于 Alpine 的影像,命令將是:
RUN apk update && apk add findutils
你的 Dockerfile 應該是
FROM gradle:7.1.0-jdk11 AS builder
WORKDIR /home/gradle/src
COPY --chown=gradle:gradle . /home/gradle/src
RUN gradle installDist
FROM openjdk:17-oracle
RUN microdnf install findutils
COPY --from=builder /home/gradle/src/build/install/app/ /app/
WORKDIR /app
CMD ["bin/app"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/503849.html
