【问题标题】:docker-compose failed to build on windows 10docker-compose 无法在 Windows 10 上构建
【发布时间】: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


【解决方案1】:

我猜你的目标文件夹中可能有多个 jar 文件。 请不要使用 *.jar ,而是使用 jar 的全名,然后使用 --build 标志重建 dokcer compose 文件。

ARG JAR_FILE=target/test-0.0.1-SNAPSHOT.jar

然后构建

docker-compose up --build

【讨论】:

    猜你喜欢
    • 2020-07-13
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多