如何实现 spring + Vue 前后端分离的项目自动打包为docker镜像
时间: 2024-02-01 07:14:34 浏览: 214
实现 Spring Boot + Vue.js 前后端分离的项目自动打包为 Docker 镜像,可以按照以下步骤进行操作:
1. 首先需要在项目根目录下创建一个 Dockerfile 文件,用于描述如何构建 Docker 镜像。例如:
```
# 指定基础镜像
FROM openjdk:8-jdk-alpine
# 指定工作目录
WORKDIR /app
# 将本地文件复制到容器中
COPY target/demo.jar ./demo.jar
COPY dist/* ./webapp/
# 暴露端口号
EXPOSE 8080
# 启动命令
CMD ["java", "-jar", "demo.jar"]
```
2. 然后,在项目的 pom.xml 中添加 Maven 插件,用于生成 Docker 镜像,例如:
```
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<configuration>
<imageName>demo</imageName>
<dockerDirectory>./</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
<resource>
<targetPath>/webapp/</targetPath>
<directory>${project.basedir}/dist</directory>
<include>*</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
```
3. 在 Vue.js 的 package.json 中添加一个 npm script,用于将前端代码打包到 Spring Boot 项目的 dist 目录中,例如:
```
{
"scripts": {
"build": "vue-cli-service build --dest ../src/main/resources/static"
}
}
```
4. 最后,在终端中执行 maven 命令进行打包,例如:
```
mvn clean package docker:build
```
此命令会自动构建 Spring Boot 应用程序并将其打包为 Docker 镜像。
需要注意的是,运行此命令前需要在本地安装 Docker,并且 Docker 服务需要处于运行状态。
阅读全文