-
Notifications
You must be signed in to change notification settings - Fork 1k
如何部署My Site
WinterChenS edited this page Jul 7, 2023
·
8 revisions
部署的方式分为两种:
- docker容器部署;
- 普通jar包部署;
git clone https://github.com/WinterChenS/my-site.git
目录结构:
my-site
├── file
├── lu_tale.sql
├── src
├── docker
├── main/java
└── main/resources
└── pom.xml
有docker启动和jar包启动两种方式,默认为jar包启动。 确认基础环境搭建完成之后,即可进行部署,详见基础环境
- 修改配置文件中的mysql地址和端口,本网站的文章使用的是markdown,如果需要使用图片直接上传,需要七牛云对象存储的配置.
由于本网站很多功能都与markdown息息相关,blog和摄影作品的上传都是用了七牛云对象存储服务,如果需要使用图片上传服务的话,需要进行服务的配置,该配置在QiniuCloudService.java
中:
没有使用的同学可以参照官方文档:官方文档
- ACCESS_KEY:存取键
- SECRET_KEY:秘钥
- BUCKET:仓库名
- QINIU_CDN_URL:外网访问地址
当然,也可以不使用七牛云,可以自己上传之后再贴进来,不过这样比较麻烦就是了!
- 导入数据库文件:file/lu_tale.sql
- 使用maven进行打包
mvn clean package
在target包下找到生成的jar包:
## 开发环境 dev
nohup java -jar my-site-1.0.0.RELEASE.jar --spring.profiles.active=dev
## 生产环境 prod
nohup java -jar my-site-1.0.0.RELEASE.jar --spring.profiles.active=prod
将项目 my-site
拷贝服务器中,进入项目路径下进行打包测试.
#打包
mvn package
#启动
java -jar target/my-site-1.0.0.RELEASE.jar
看到 Spring Boot 的启动日志后表明环境配置没有问题,接下来我们使用 DockerFile 构建镜像。
无需编译直接使用命令部署(已安装docker):
注意,环境变量需要按照自己实际的进行修改
docker run --name my-site -d -p 8080:8080 -e SPRING_DATASOURCE_DRUID_URL="jdbc:mysql://127.0.0.1:3306/lu_tale?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true" -e SPRING_DATASOURCE_DRUID_USERNAME="root" -e SPRING_DATASOURCE_DRUID_PASSWORD="root" -e QINIU_ACCESSKEY="" -e QINIU_SERECTKEY="" -e QINIU_BUCKET="" -e QINIU_CDN_URL="" winterchen/my-site:latest
无需编译直接使用命令部署(已安装docker以及docker-compose):
注意,环境变量需要按照自己实际的进行修改
docker-compose.yml
version: '3'
services:
delay-server:
container_name: my-site
image: winterchen/my-site
ports:
- "8080:8080"
volumes:
- "./tmp:/tmp"
environment:
SPRING_DATASOURCE_DRUID_URL: jdbc:mysql://127.0.0.1:3306/lu_tale?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
SPRING_DATASOURCE_DRUID_USERNAME: root
SPRING_DATASOURCE_DRUID_PASSWORD: root
QINIU_ACCESSKEY: ""
QINIU_SERECTKEY: ""
QINIU_BUCKET: ""
QINIU_CDN_URL: ""
然后运行:
docker-compose up -d
mvn package docker:build
第一次构建可能有点慢,当看到以下内容的时候表明构建成功:
[INFO] Building image springboot/my-site
Step 1/4 : FROM openjdk:8-jdk-alpine
---> 224765a6bdbe
Step 2/4 : VOLUME /tmp
---> Using cache
---> bef8b6ae93aa
Step 3/4 : ADD my-site-1.0.0.RELEASE.jar app.jar
---> fe7f4dff781d
Step 4/4 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
---> Running in 7def475e609d
---> 66653a573692
Removing intermediate container 7def475e609d
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built 66653a573692
Successfully tagged springboot/my-site:latest
[INFO] Built springboot/my-site
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.119 s
[INFO] Finished at: 2018-05-03T19:16:05+08:00
[INFO] Final Memory: 48M/578M
[INFO] ------------------------------------------------------------------------
然后我们使用docker images
命令查看镜像:
hendonghuadeMacBook-Pro% docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
springboot/my-site latest 66653a573692 47 seconds ago 142MB
<none> <none> 1bec22fbcef1 6 days ago 133MB
openjdk 8-jdk-alpine 224765a6bdbe 3 months ago 102MB
springboot/my-site
就是我们构件好的镜像,下一步就是运行该镜像
docker run -p 8080:8080 -t springboot/my-site
启动完成之后我们使用docker ps
查看正在运行的镜像:
chendonghuadeMacBook-Pro% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0617b1dc12f1 springboot/my-site "java -Djava.secur..." 46 seconds ago Up 44 seconds 0.0.0.0:8080->1111/tcp festive_pike
启动成功之后访问: http://localhost:8080 访问首页 http://localhost:8080/admin 访问后台 默认账密:admin 123456