我尝试使用dockerfile构建Maven项目,但是使用docker build
命令时出现此错误
/bin/sh: 1: ./mvnw: not found
我试过这个解决方案:
Unable to run './mvnw clean install' when building docker image based on "openjdk:8-jdk-alpine" for Spring Boot app
但仍然有错误。
这是我的dockerfile
# Stage 1 Build the Spring Project into a jar file
FROM openjdk:8-slim as builder
RUN mkdir src
COPY . /src
WORKDIR /src
RUN chmod 700 mvnw && ./mvnw clean install package ==>error on this line
# Stage 2 Run the jar file from previous build
FROM openjdk:8-jdk-alpine
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
COPY --from=builder /src/target /build
WORKDIR /build
EXPOSE 80
EXPOSE 5001
ENTRYPOINT ["java", "-jar", "tax-0.0.1-SNAPSHOT.jar"]
我想念什么吗?
我很乐意提供任何帮助。
最佳答案
这已经几个月了,但也许我可以帮上忙。
从Windows 10计算机基于openjdk:14-alpine构建镜像时,我遇到了相同的问题。问题在于本地mvnw
脚本具有Windows行尾(称为CRLF的\r\n
)。
我尝试使用/bin/sh mvnw
调用脚本,但仍然会遇到问题。第一个解决方案是从我的IDE将行尾转换为Linux EOL(称为“LF”的\n
)。
更好的方法是在调用脚本之前安装dos2unix
并运行dos2unix mvnw
。在Linux Slim(Debian)上,您可以执行apt-get update && apt-get install dos2unix
。
您也可以尝试使用chmod +x mvnw
使脚本可执行。
希望这可以帮助!