【发布时间】:2020-12-11 14:11:18
【问题描述】:
我正在尝试使用 docker compose 部署我的 Spring Boot 应用程序,但出现此错误:
步骤 14/15:复制 ${JAR_FILE} manager.jar 错误:服务“管理器”构建失败:使用 COPY 和多个源文件时,目标必须是目录并以 /
结尾但是,如果我使用 Dockerfile 进行 docker 构建,它可以正常工作。问题是,为什么 docker-compose up 会失败?
C:\Push\Workspace\manager>docker build --tag "docker-manager:latest" 。 [+] 构建 7.3 秒(8/8)完成
我已尝试寻找示例,但我使用的是 Windows 10
Dockerfile:
FROM openjdk:8-jdk-alpine
RUN addgroup -S spring && adduser -S spring -G spring
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} example.jar
ENTRYPOINT ["java", "-jar", "example.jar"]
docker-compose.yml
services:
oracle:
image: container-registry-london.oracle.com/database/enterprise:12.2.0.1
ports:
- "8080:8080"
- "1521:1521"
manager:
build: .
ports:
- "8181:8181"
depends_on:
- oracle
links:
- oracle
restart: always
【问题讨论】:
-
你的目标文件夹中有多少个jar文件?
-
一个罐子(来自mi spring boot应用程序的罐子
-
而不是 *.jar 尝试使用全名,看看会发生什么。
-
我收到此错误:
failed to build : COPY failed: stat /var/lib/docker/tmp/docker-builder042396409/target/manager.jar: no such file or directory -
你能告诉我你的 dockerfile 和 docker-compose 文件的目录结构吗?另外请告诉我你是如何运行撰写文件的?您是否在您的目录中使用 docker-compose up 与 docker-compose.yml 和 Dockerfile?
标签: java spring-boot docker docker-compose