我有一个docker文件,在那里我克隆了我的git仓库,创建了jar并运行。
FROM openjdk:17-jdk-slim
RUN apt-get update && apt-get install -y git maven
RUN git clone <git_url> /app/socialB
WORKDIR /app/socialB
RUN mvn package
CMD ["java", "-jar", "/target/socialB.jar"]
我在docker compose中使用这个DockerFile。
version: '3'
services:
neo4j:
image: neo4j:4.3.6
container_name: neo4j
ports:
- "7474:7474"
- "7687:7687"
volumes:
- ./data:/data
environment:
- NEO4J_AUTH=neo4j/password
spring-boot:
build:
context: .
dockerfile: DockerFile
container_name: spring-boot
ports:
- "8080:8080"
environment:
- DB_URL=neo4j
- DB_PORT=7687
- SPRING_DATASOURCE_USERNAME=neo4j
- SPRING_DATASOURCE_PASSWORD=password
depends_on:
- neo4j
两个文件都在同一个文件夹中。
Neo4j镜像工作正常,但Sping Boot 给出以下错误:
spring-boot | Error: Unable to access jarfile /target/socialB.jar
spring-boot exited with code 1
除了使用,我还使用了:
RUN ./mvnw package
完美地创建目标文件夹。
将路径从/target/socialB. jar更改为/app/SocialB/target/socialB. jar。
在本地,一切都很好。
1条答案
按热度按时间7eumitmz1#
您尝试从
/target/socialB.jar
启动应用程序,但您将存储库内容放在/app/socialB
中,然后从那里打包应用程序,因此jar文件最终将位于/app/socialB/target/socialB.jar
尝试将Dockerfile中的最后一行更改为