CentOS7 docker部署springboot+vue
时间: 2025-01-01 08:33:41 浏览: 10
### 部署Spring Boot和Vue应用程序到CentOS 7
#### 准备工作
为了在CentOS 7上成功部署Spring Boot和Vue应用,需先确认已安装必要的基础环境。这包括但不限于Docker及其版本应不低于18.03.0-ce[^1]。
#### 创建项目文件夹并配置Dockerfile
对于Spring Boot部分,在项目的根目录下创建名为`Dockerfile`的文件:
```dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
```
针对前端Vue.js构建产物,则通常会有一个独立的服务来托管静态资源。这里假设已经通过npm或yarn完成了生产模式下的打包操作,并且所有编译后的HTML/CSS/JS都位于`dist`文件夹内。此时可利用Nginx作为Web Server发布这些静态页面:
```dockerfile
# 使用官方nginx镜像为基础镜像
FROM nginx:alpine
# 将本地dist目录中的内容复制到容器内的默认网站路径下
COPY ./dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
```
#### 编写docker-compose.yml实现服务组合启动
在同一级目录新建`docker-compose.yml`用于定义多个关联的应用组件和服务依赖关系:
```yaml
version: '3'
services:
backend:
image: spring-latest}
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
environment:
SPRING_PROFILES_ACTIVE: prod
depends_on:
- db
frontend:
image: vue-front:${TAG:-latest}
build:
context: ../frontend/
dockerfile: Dockerfile.frontend
ports:
- "80:80"
depends_on:
- backend
db:
image: mysql:5.7
volumes:
- mysqldata:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
mysqldata:
```
上述配置说明了三个主要组成部分——后端API(`backend`)、前端UI(`frontend`)以及数据库实例(`db`)之间的交互方式。其中`${TAG}`变量允许指定不同的标签以便区分各个版本;而`depends_on`字段则指定了各服务间的加载顺序[^4]。
#### 构建与运行
完成以上准备工作之后就可以执行如下命令来进行整个系统的集成测试了:
```bash
cd path/to/project/root
docker-compose up --build
```
此指令将会自动拉取所需的底层镜像、按照给定的Dockerfiles分别构建自定义映像、最后依照YAML文档描述的方式依次激活各项功能模块。
阅读全文