前后端分离项目的简易docker容器化部署

前端使用nginx部署,后端使用springboot mysql
application.yml

spring:
  profiles:
    active: prod
  application:
    name: HotelManger
mybatis-plus:
  mapper-locations: classpath:/com/yan/*.xml
  type-aliases-package: com.yan.entity

application-prod.yml

server:
  port: 8888
spring:
  datasource:
    username: root
    password: root1234
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/hotelsys?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useSSL=false&failOverReadOnly=false
    driver-class-name: com.mysql.cj.jdbc.Driver
  redis:
    host: 192.168.83.100
    port: 6380
    database: 1
logging:
  level:
    root: warn
isStartRedis: 0

下载好mysql数据库,jdk,nginx镜像

数据库在项目中使用8版本 java项目也是基于jdk11构建的
前后端分离项目的简易docker容器化部署_第1张图片

开启数据库

docker run -d --name hotelManger-mysql -p 3307:3306
 -v:~/back/hotelManger/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root1234 0ca

在这里插入图片描述
开放端口3307
navicat 连接
前后端分离项目的简易docker容器化部署_第2张图片
将测试时的库表转储sql文件 按照yml中的数据库名字 创建数据库 运行sql文件

创建docker网络

docker network create hotel
数据库加入网络
docker network connect 450 b5 #网络id 容器id

通过 docker network inspect 450 查看数据库在容器网络地址,将yml文件中的地址进行设置

前后端分离项目的简易docker容器化部署_第3张图片

java部分

   <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.6.4</version>
            </plugin>
        </plugins>
    </build>

跳过测试 clear清理 用package打成jar包

前后端分离项目的简易docker容器化部署_第4张图片
传入服务器

编写dockerfile文件

FROM openjdk:11-jdk
ENV APP_PATH=/hotel
WORKDIR $APP_PATH
ADD ./hotelsys-1.0-SNAPSHOT.jar /$APP_PATH/apps.jar
EXPOSE 8888
ENTRYPOINT ["java","-jar"]
CMD ["apps.jar"]
                 

构建镜像

docker build -t hotelmanger:0.1 .

最后 运行镜像 将容器加入网络 开放对应端口测试前后端分离项目的简易docker容器化部署_第5张图片
windows主机访问成功
前端vue部署
前端访问的地址,要是对外暴露的

vue项目终端

npm run build

前后端分离项目的简易docker容器化部署_第6张图片

最后在项目dist目录生成单页面应用(该页面只能在服务器中运行)
前后端分离项目的简易docker容器化部署_第7张图片

将dist包导出到服务器 将里面内容 通过docker数据卷方式 传入nginx容器内

 docker run -p 80:80 --name hotelmanger-nginx -v ~/hotelMang/dist:/usr/share/nginx/html  8f34c303855f

部署成功 通过80端口即可访问

你可能感兴趣的:(docker,mysql,java)