【发布时间】:2019-01-14 23:12:02
【问题描述】:
我在我的项目中创建了以下 Dockerfile 来容器化 Spring 应用程序
FROM java:8
EXPOSE 8080
VOLUME /tmp
ADD ./spring-boot-app.jar /app/app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/app.jar"]
无论我是否尝试在 ADD ./spring-boot-app.jar /app/app.jar 中提供 jar 文件的完整项目路径,它仍然会导致以下错误-
任务“:buildDocker”执行失败。 Docker 执行失败 命令行 [docker build -t spring-boot-app:latest /Users/sh/temp/service/build/docker] 返回: 添加失败:stat /var/lib/docker/tmp/docker-builder448261255/spring-boot-app.jar:没有这样的文件或目录
另外,如果有更简单的方法或替代解决方案,感谢您的建议。
基于cmets,我在Dockerfile中尝试了这个,并且能够通过之前的错误:
FROM openjdk:8-jre-alpine
ADD build/libs/*.jar app.jar
ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar
但是在运行命令 docker-compose up 时,它没有将 spring boot 应用程序容器与 mysql 容器链接,并给出通信链接失败错误。这可能是因为 Dockerfile ENTRYPOINT。这是 docker-compose.yml :
version: '3'
services:
demo-mysql:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: smthing
MYSQL_DATABASE: smthing
MYSQL_USER: smthing
MYSQL_PASSWORD: smthing
spring-boot-docker-webapp:
build:
context: .
dockerfile: Dockerfile
depends_on:
- demo-mysql
ports:
- 8080:8080
environment:
DATABASE_HOST: demo-mysql
DATABASE_USER: smthing
DATABASE_PASSWORD: smthing
DATABASE_NAME: smthing
DATABASE_PORT: 3306
【问题讨论】:
标签: docker spring-boot gradle docker-compose dockerfile