ฉันมีโปรเจ็กต์ Gradle ง่ายๆ ที่ฉันต้องการสร้างภายในคอนเทนเนอร์ Docker
ฉันมีการสร้างนักเทียบท่าแบบหลายขั้นตอน ขั้นตอนแรกเพียงโคลนโครงการจาก GitHub ขั้นตอนที่สองจะต้องสร้างโครงการเพื่อที่ฉันจะสามารถดำเนินการได้ในขั้นตอนสุดท้าย แต่มันล้มเหลวใน
FROM gradle:4.2.1-jdk8-alpine
WORKDIR /app
COPY --from=0 /app/myProject /app
RUN ./gradlew build --stacktrace
คำสั่ง ./gradlew build --stacktrace
ไม่สามารถดำเนินการได้และล้มเหลวโดยมีข้อผิดพลาด:
FAILURE: Build failed with an exception.
* What went wrong:
Could not update /app/.gradle/3.5-rc-2/file-changes/last-build.bin
และสแต็กเทรซ:
org.gradle.api.UncheckedIOException: Could not update /app/.gradle/3.5-rc-2/file-changes/last-build.bin
at org.gradle.api.internal.changedetection.state.FileTimeStampInspector.updateOnFinishBuild(FileTimeStampInspector.java:72)
at org.gradle.api.internal.changedetection.state.BuildScopeFileTimeStampInspector.stop(BuildScopeFileTimeStampInspector.java:38)
at org.gradle.internal.concurrent.CompositeStoppable.stop(CompositeStoppable.java:98)
.....
Caused by: java.io.FileNotFoundException: /app/.gradle/3.5-rc-2/file-changes/last-build.bin (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
......
เหตุใดผู้ใช้นักเทียบท่าจึงไม่มีสิทธิ์สร้างไฟล์ในไดเร็กทอรีการทำงานและจะเพิ่มสิทธิ์เหล่านี้ได้อย่างไร แบบธรรมดา RUN chmod 777 /app
ใช้งานไม่ได้และบอกฉัน: chmod: /app: Operation not permitted