gpt4 book ai didi

spring-boot - 使用以下dockerfile构建docker镜像时出错

转载 作者:行者123 更新时间:2023-12-02 18:50:24 24 4
gpt4 key购买 nike

Dockerfile

FROM openjdk:8-jdk-alpine
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
ARG DEPENDENCY=target/dependency
COPY ./target/dependency/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","hello.Application"]
错误:
    Sending build context to Docker daemon  36.83MB
Step 1/8 : FROM openjdk:8-jdk-alpine
---> a3562aa0b991
Step 2/8 : RUN addgroup -S spring && adduser -S spring -G spring
---> Using cache
---> e9748d9baac5
Step 3/8 : USER spring:spring
---> Using cache
---> 25b83c6d3e7a
Step 4/8 : ARG DEPENDENCY=target/dependency
---> Using cache
---> 24f648b8f9ef
Step 5/8 : COPY ./target/dependency/BOOT-INF/lib /app/lib
COPY failed: stat /var/lib/docker/tmp/docker-builder226394005/target/dependency/BOOT-INF/lib: no such file or directory
1)。 ARG DEPENDENCY = target / dependency ->这不起作用,这就是为什么我没有在Dockerfile中更改其他COPY行的原因
2)。我有一个创建为 target / dependency / BOOT-INF / lib 的目录,该目录仍然包含所有依赖项,但错误地指出:没有这样的文件或目录。
请提供一些解决方案以及有关Dockerfile的正确解释的帮助。非常欢迎使用Postgres DB对Docker进行Springboot应用程序的任何建议。
更新的Dockerfile:
FROM openjdk:8-jdk-alpine
RUN addgroup -S spring && adduser -S spring -G spring
RUN adduser spring root
COPY . /home/app
WORKDIR /home/app
RUN chmod -R 775 /home/app
RUN mkdir -p /home/app/lib
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /home/app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","hello.Application"]
更新错误:
   Sending build context to Docker daemon  36.83MB
Step 1/12 : FROM openjdk:8-jdk-alpine
---> a3562aa0b991
Step 2/12 : RUN addgroup -S spring && adduser -S spring -G spring
---> Using cache
---> e9748d9baac5
Step 3/12 : RUN adduser spring root
---> Using cache
---> 444285d4e8d1
Step 4/12 : COPY . /home/app
---> 0bf717362f3e
Step 5/12 : WORKDIR /home/app
---> Running in 9f967425a899
Removing intermediate container 9f967425a899
---> bcb4e22f9faa
Step 6/12 : RUN chmod -R 775 /home/app
---> Running in 3110a9dd9059
Removing intermediate container 3110a9dd9059
---> c9ad2d9f411d
Step 7/12 : RUN mkdir -p /home/app/lib
---> Running in 48a172151d8b
Removing intermediate container 48a172151d8b
---> 11dbe4b4e21f
Step 8/12 : ARG DEPENDENCY=target/dependency
---> Running in 31a21dfd103f
Removing intermediate container 31a21dfd103f
---> ac340462402c
Step 9/12 : COPY ${DEPENDENCY}/BOOT-INF/lib /home/app/lib
COPY failed: stat /var/lib/docker/tmp/docker-builder273428680/target/dependency/BOOT-INF/lib: no such file or directory

最佳答案

如注释中所述,copy命令基于构建上下文工作,因此这就是为什么将构建目标作为构建上下文之外的原因。
如果Dockerfile位于目标文件夹中,则复制命令应为

copy dependency/BOOT-INF/lin /home/app/

关于spring-boot - 使用以下dockerfile构建docker镜像时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62607236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com