Spring boot Spring引导Dockerfile错误:未知指令:JAVA
我有下面的Dockerfile,我正试图使用它来容器化我的Spring Boot应用程序:Spring boot Spring引导Dockerfile错误:未知指令:JAVA,spring-boot,docker,dockerfile,Spring Boot,Docker,Dockerfile,我有下面的Dockerfile,我正试图使用它来容器化我的Spring Boot应用程序: FROM openjdk:8-jdk-alpine as myservice COPY build/libs/my-service.jar my-service.jar HEALTHCHECK CMD curl --fail https://localhost:9200/healthCheck || exit 1 EXPOSE 443 9200 ENTRYPOINT [ "jav
FROM openjdk:8-jdk-alpine as myservice
COPY build/libs/my-service.jar my-service.jar
HEALTHCHECK CMD curl --fail https://localhost:9200/healthCheck || exit 1
EXPOSE 443 9200
ENTRYPOINT [
"java", \
"-Dspring.config=.", \
"-Dspring.profiles.active=local", \
"-Dkeystore.file=mykey.p12, \
"-jar", \
"my-service.jar"
]
当我跑步时:
docker build -t myorg/my-service .
我得到:
Sending build context to Docker daemon 82.5MB
Error response from daemon: Dockerfile parse error line 10: unknown instruction: "JAVA",
这里发生了什么?它将“java”作为单独的Dockerfile指令读取。如果希望entrypoint命令的第一行位于不同的行上,则需要在[
之后和]
之前的最后一行转义:
ENTRYPOINT [ \
... \
]
像这样:
ENTRYPOINT [ \
"java", \
"-Dspring.config=.", \
"-Dspring.profiles.active=local", \
"-Dkeystore.file=mykey.p12, \
"-jar", \
"my-service.jar" \
]
我建议使用过梁捕捉这样的错误hadolint
是一个很好的命令行linter,您可以轻松下载大多数IDE的Dockerfile linter。它将“java”作为单独的Dockerfile指令读取。如果希望entrypoint命令的第一行位于不同的行上,则需要在[
之后和]
之前的最后一行转义:
ENTRYPOINT [ \
... \
]
像这样:
ENTRYPOINT [ \
"java", \
"-Dspring.config=.", \
"-Dspring.profiles.active=local", \
"-Dkeystore.file=mykey.p12, \
"-jar", \
"my-service.jar" \
]
我建议使用过梁捕捉这样的错误
hadolint
是一个很好的命令行linter,您可以轻松下载大多数IDE的Dockerfile linter。Wow,就是这样,谢谢@Tential(+1)。有趣的是,你提到linters,我正在为IntelliJ的商业版付费,并且已经下载并安装了Docker/Dockerfile插件,上面说我的(坏的)Dockerfile很好。但你是对的,添加这些反斜杠可以修复一切——再次感谢!哇,就是这样,谢谢@1。有趣的是,你提到linters,我正在为IntelliJ的商业版付费,并且已经下载并安装了Docker/Dockerfile插件,上面说我的(坏的)Dockerfile很好。但你是对的,添加这些反斜杠可以修复一切——再次感谢!