前端使用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 run -d --name hotelManger-mysql -p 3307:3306
-v:~/back/hotelManger/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root1234 0ca
开放端口3307
navicat 连接
将测试时的库表转储sql文件 按照yml中的数据库名字 创建数据库 运行sql文件
创建docker网络
docker network create hotel
数据库加入网络
docker network connect 450 b5 #网络id 容器id
通过 docker network inspect 450
查看数据库在容器网络地址,将yml文件中的地址进行设置
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包
传入服务器
编写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 .
最后 运行镜像 将容器加入网络 开放对应端口测试
windows主机访问成功
前端vue部署
前端访问的地址,要是对外暴露的
vue项目终端
npm run build
最后在项目dist目录生成单页面应用(该页面只能在服务器中运行)
将dist包导出到服务器 将里面内容 通过docker数据卷方式 传入nginx容器内
docker run -p 80:80 --name hotelmanger-nginx -v ~/hotelMang/dist:/usr/share/nginx/html 8f34c303855f
部署成功 通过80端口即可访问