Skip to content

如何部署My Site

WinterChenS edited this page Jul 7, 2023 · 8 revisions

如果部署My Site

部署的方式分为两种:

  • 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:外网访问地址

当然,也可以不使用七牛云,可以自己上传之后再贴进来,不过这样比较麻烦就是了!

jar包启动My Site

  • 导入数据库文件: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

docker 部署启动

将项目 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-compose部署

无需编译直接使用命令部署(已安装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

使用Dockerfile进行编译

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