从月底开始,Heroku将取消它的免费层,因此我正在寻找一种方法将我的Java应用程序部署到其他地方,即Render。Render本机不像Heroku那样支持Java,但支持Docker,即使我对它几乎没有经验,也应该可以。
那么,我们开始吧。我用Quarkus创建了一个MVP,并在GitHub上推出了所有的东西。Quarkus附带了以下预配置的Dockerfile。
FROM registry.access.redhat.com/ubi8/openjdk-17:1.14
ENV LANGUAGE='en_US:en'
COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/
COPY --chown=185 target/quarkus-app/*.jar /deployments/
COPY --chown=185 target/quarkus-app/app/ /deployments/app/
COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/
EXPOSE 8080
USER 185
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"然后,我创建了一个新的呈现项目,连接GitHub回购并为Dockerfile (./src/main/docker/Dockerfile.jvm)指定自定义路径。
在此之后,生成启动并在出现以下错误后失败:
error: failed to solve: failed to compute cache key: failed to calculate checksum of ref ybv5ya8wywl2vxh03tp4kiw9y::xq421txz9uzdcqymi3ygmk6xb: failed to walk /home/user/.local/tmp/buildkit-mount4168277661/target/quarkus-app: lstat /home/user/.local/tmp/buildkit-mount4168277661/target/quarkus-app: no such file or directory我不知道这到底意味着什么。我觉得问题在于它希望在target dir中找到一些东西,这是不存在的,因为我从来没有在Dockerfile中做过类似./mvnw package的事情。因此,在第二次尝试中,我添加了以下行
RUN ./mvnw package在Dockerfile中,就在这四行COPY行之前,但是问题仍然存在,所以我可能偏离了轨道。
有什么能帮上忙的吗?
发布于 2022-11-07 16:55:55
Quickstart附带的Dockerfile假定您已经编译了源代码。为了编译容器中的源代码,我必须将我的Dockerfile更改为列出的这里。另外,从*文件中删除该.dockerignore也很重要。
https://stackoverflow.com/questions/74329502
复制相似问题