我创建了一个Spring启动应用程序。 现在我想为它创建一个docker图像并将其作为docker容器运行。
答案 0 :(得分:0)
最简单的方法是将jar添加到容器中并使用docker-compose
运行它您可以使用以下泊坞窗文件
FROM openjdk:8
WORKDIR opt
ADD app-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
以及以下docker-compose.yml
version: '3'
services:
web:
build:
dockerfile: .
ports:
- "8080:8080"
volumes:
- /app/src/main/resources/static:/opt/static #should match the actual path
您稍后可以添加db
服务等
所有文件应驻留在同一文件夹中,并且卷中的路径应与prj
匹配使用
可以实现更复杂的方法使用这些appraoches,容器可以自我部署,并且在源代码更改时不需要维护docker prj
答案 1 :(得分:0)
早上好,下午好或晚安!
好吧...要创建您的Spring Boot应用程序的映像,我建议在项目的根目录下创建一个名为Dockerfile
的文件。
之后,只需在Dockerfile
文件中插入以下设置:
#Image of the application execution package in question
FROM openjdk:8-jdk-slim
FROM maven:3.2-jdk-8
#Creating application directory
RUN mkdir /app
#Creating application directory
WORKDIR /app
#Copy the .jar to the working directory
COPY target/<NAME_PROJECT>.jar /app
#Port configuration
EXPOSE <EXTERNAL_PORT>:<INTERNAL_PORT>
#Command to run the application
CMD ["java","-jar","<NAME_PROJECT>.jar"]
创建Dockerfile之后,只需运行以下命令即可从Spring Boot应用程序创建Docker映像:
docker build -t <NAME_IMAGE> .
创建图像后,让我们从该图像运行一个容器:
docker run -it -d –name <NAME_CONTAINER> -p <EXTERNAL_PORT>:<INTERNAL_PORT> <NAME_IMAGE>
一些观察结果:
我假设您正在使用Java 8开发应用程序,并使用maven 3.2来构建应用程序,因此在Dockerfile的图像声明中,我为此放置了相关图像。但是,如果您使用不同版本的Java和Maven开发应用程序,建议您在Dockerhub存储库中搜索与开发项目的版本相关的映像。以下是直接带您搜索所需图像的链接:
如果您想进一步了解Docker令人印象深刻的技术,只需访问我的博客并关注有关以下方面的许多事情:
Learning to use the Dockerfile
我建议的另一件事是,给项目一个mvn clean install
,以便Dockerfile可以找到您的应用程序。
如果您正在使用maven和执行文件(即jar)开发Spring应用程序,那么我也在谈论所有这一切,否则,如果您正在使用另一种方法,只需根据您的Dockerfile逻辑进行设置即可。 Spring项目的配置。