spring boot 项目和mysql 生成为同一个 docker 镜像 并启动-spring,运维-ICode联盟

原创  spring boot 项目和mysql 生成为同一个 docker 镜像 并启动

分类:spring,运维    99人阅读    IT小君  2023-04-24 15:52

方案1:

将Spring Boot项目打包成Docker镜像并包含MySQL镜像,需要进行以下操作:

  1. 安装Docker:首先,你需要在你的计算机上安装Docker。你可以从Docker官方网站下载安装程序,并按照说明进行安装。

  2. 编写Dockerfile:在Spring Boot项目根目录下创建一个名为“Dockerfile”的文件,并编写以下内容:

### 构建Spring Boot应用 ###
FROM maven:3.6.3-jdk-8-slim AS build
RUN mkdir /app
WORKDIR /app
COPY . /app/
RUN mvn clean package

### 构建MySQL镜像 ###
FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD=root
ENV MYSQL_DATABASE=test
ADD test.sql /docker-entrypoint-initdb.d/test.sql

### 合并到一个镜像 ###
FROM openjdk:8-jre-alpine
COPY --from=build /app/target/your-app-name.jar /app/app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app/app.jar"]

其中,FROM maven:3.6.3-jdk-8-slim AS build用于构建Spring Boot应用,使用了Maven作为构建工具;FROM mysql:5.7用于构建MySQL镜像,指定了MySQL的版本和一些默认配置;ADD test.sql /docker-entrypoint-initdb.d/test.sql用于将MySQL初始化脚本添加到容器中;最后,COPY --from=build /app/target/your-app-name.jar /app/app.jar将之前构建的Spring Boot应用的Jar包复制到镜像中,ENTRYPOINT用于启动Spring Boot应用。

  1. 构建Docker镜像:在命令行终端中进入到Dockerfile所在目录,然后输入以下命令来构建Docker镜像:
 
docker build -t your-image-name .

这里your-image-name是你要给镜像起的名称,最后的.表示当前目录。Docker将根据Dockerfile文件中的指令来构建镜像。

  1. 运行Docker容器:完成Docker镜像的构建后,你可以使用以下命令来运行Docker容器
docker run -p 8080:8080 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=test --name mysql-container -d mysql:5.7

这里通过-e参数指定了MySQL的一些环境变量和配置,并且给容器取了一个名字叫做mysql-container。在运行时,Docker将自动启动Spring Boot应用,并将其绑定到本地的8080端口。此外,MySQL也会以容器的形式运行。

以上就是将Spring Boot项目打包成Docker镜像并包含MySQL镜像的步骤。希望能够帮助到你!

 

方案2:

将Spring Boot项目和MySQL打包成同一个Docker镜像,需要进行以下操作:

  1. 在Spring Boot项目的根目录下创建一个名为“Dockerfile”的文件,并编写以下内容:
FROM openjdk:8-jre-alpine
RUN apk update && apk add mysql-client
EXPOSE 8080
ADD target/your-app-name.jar app.jar
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]

其中,FROM openjdk:8-jre-alpine用于指定基础镜像,我们这里选择了Alpine Linux的OpenJDK 8;RUN apk update && apk add mysql-client用于安装MySQL客户端;ADD target/your-app-name.jar app.jar将Spring Boot应用的Jar包添加到镜像中;COPY ./docker-entrypoint.sh /用于将容器的启动脚本添加到镜像中;最后,ENTRYPOINT ["/docker-entrypoint.sh"]指定了容器启动时要运行的命令。

  1. 在Spring Boot项目的根目录下创建一个名为“docker-entrypoint.sh”的文件,并编写以下内容:
#!/bin/sh
set -e

# 启动MySQL服务
service mysql start

# 执行MySQL初始化脚本
mysql -uroot -p"$MYSQL_ROOT_PASSWORD" < test.sql &

# 启动Spring Boot应用
java -jar app.jar

其中,service mysql start用于启动MySQL服务;mysql -uroot -p"$MYSQL_ROOT_PASSWORD" < test.sql &用于执行MySQL初始化脚本(假设初始化脚本名为“test.sql”);最后,java -jar app.jar用于启动Spring Boot应用。

  1. 在Spring Boot项目中添加MySQL初始化脚本:

将MySQL初始化脚本(假设名为“test.sql”)放在Spring Boot项目的根目录下。

  1. 构建Docker镜像:

在命令行终端中进入到Dockerfile所在目录,然后输入以下命令来构建Docker镜像:

docker build -t your-image-name .

这里your-image-name是你要给镜像起的名称,最后的.表示当前目录。Docker将根据Dockerfile文件中的指令来构建镜像。

  1. 运行Docker容器:

完成Docker镜像的构建后,你可以使用以下命令来运行Docker容器:

 
docker run -p 8080:8080 -e MYSQL_ROOT_PASSWORD=123456 --name your-container-name your-image-name

这里通过-e参数指定了MySQL的ROOT用户密码,并且给容器取了一个名字叫做your-container-name。在运行时,Docker将自动启动Spring Boot应用和MySQL服务,并将它们打包成同一个镜像。

以上就是将Spring Boot项目和MySQL打包成同一个Docker镜像的步骤。希望能够帮助到你!

点击广告,支持我们为你提供更好的服务

时尚css导航菜单栏动画特效

html5鼠标经过星星连成一条线特效

HTML5保健品营养品引导页模板

商务代理服务商公司网站模板

教育辅导培训机构HTML5网站模板

canvas卡通液体马赛克图像特效

打造健康生活方式宣传网站模板

极简品牌设计工作室HTML5网站模板

创意设计机构HTML5网站模板

css精美蝴蝶动画特效

炫酷WebGL流体图片滑动切换效果

HTML5浪漫风格婚礼婚纱婚庆网站模板

html5 canvas文字放射发光动画特效

4款不同岗位个人求职简历网页模板

css照明喷泉灯光动画特效

互联网设计师个人简历网页模板

高级岗位个人求职面试网页模板

有趣的css图片遮罩层滤镜特效

CSS3 SVG叶子虚线响应式布局代码

3dmax弹跳鼠标跟随动画特效

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»