Jenkins+Docker部署后端项目

前言

适用于Jenkins+Docker插件、环境安装好的

Docker自动化部署的步骤

  1. 后端开发人员
    (1)填写项目部署申请单包含:部署服务器IP、源文件包名类型、项目和数据库端口号、gitlab地址等(最好能知道配置文件内容);
    (2)在服务器上创建数据库;
    (3)在服务器上创建后端项目文件夹,并放配置文件。
  2. Jenkins
    (1)创建项目基本配置;
    (2)构建镜像,存为tar包;
    (3)启动容器
  3. 服务器
    (1)docker配置容器;
    (2)配置nginx
  4. 浏览器访问
    http://ip/api/v1(后端接口地址取决于nginx的配置)

提示:以下是本篇文章正文内容,下面案例可供参考


文章目录

  • 前言
  • 一、配置准备(后端人员)
  • 1、填写模板文档
  • 2、配置数据库(----不会)
  • 3、服务器上创建文件夹,并存放配置文件
  • 二、Jenkins配置
  • 1、创建自由风格的项目(基本配置)
  • 2、构建
  • 三、Linux服务器配置
  • 1.docker创建容器
  • 2.配置nginx文件
  • 四、浏览器访问



一、配置准备(后端人员)

1、填写模板文档

docker部署host docker部署后端,自动kill_jenkins

2、配置数据库(----不会)

3、服务器上创建文件夹,并存放配置文件

application.yml 中文的地方都需要修改
并且文件名称和内容要和gitlab上保持一致

spring:
  application:
    name: 某某项目
  jackson:
    serialization:
      write-dates-as-timestamps: true
  datasource: # 数据源的相关配置
    type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP
    driver-class-name: org.postgresql.Driver # mysql驱动
    url: jdbc:postgresql://postgres:5432/项目?charset=utf-8
    username: 用户名
    password: 密码
    hikari:
      connection-timeout: 30000 # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQ
      minimum-idle: 5 # 最小连接数
      maximum-pool-size: 20 # 最大连接数
      auto-commit: true # 自动提交
      idle-timeout: 600000 # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
      pool-name: DateSourceHikariCP # 连接池名字
      max-lifetime: 1800000 # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟
      connection-test-query: SELECT 1
server:
#  servlet:/home/docker
#    context-path: /mis/api/v1
  port: 端口号

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

#启动系统时,是否重新读取系统资源
mis:
  sys:
    resource:
      updated: true #是否开启

logging:
  file:
    name: log/demo.log
  pattern:
    console: '%clr(%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n)'
    file: '%d{yyyy-MM-dd HH:mm:ss.SSS} >>> [%thread] >>> %-5level >>> %logger{50} >>> %msg%n'
  level:
    root: INFO
    com.jianju: DEBUG
    org.springframework.web: INFO
    org.springframework.security: INFO
    org.springframework.security.oauth2: INFO

二、Jenkins配置

1、创建自由风格的项目(基本配置)

(1)丢弃构建,主要是醉倒构建数

(2)源代码管理:url、用户凭证、分支

(3)构建触发器:轮询SCM—>检测到代码定时运行(H/2 * * * * 每两分钟检查一下gitlab中是否上传新的代码)

docker部署host docker部署后端,自动kill_docker部署host_02

2、构建

  1. 调用顶层Maven目标---->未知
  2. 执行shell----->编译、构建镜像、打包代码

docker部署host docker部署后端,自动kill_jenkins_03



cp /var/jenkins_home/workspace/林业遥感_后端_测试/target/server-0.0.1-SNAPSHOT.jar ./
docker build -t server:latest .
docker save server:latest > ./server.tar
  • docker build -t 使用当前目录的 Dockerfile 创建镜像;
  • docker save : 将指定镜像保存成 tar 归档文件。

3.Send files or execute commands over SHH

  • 选择要部署的服务器;
  • 复制的文件,即在shell中打包的文件名(Jenkins-demo.tar)
  • 把打包的文件放在什么位置(/test)
  • 执行的命令

Exec command代码如下(示例):

cd /home/docker
docker load -i /home/docker/images/server.tar
docker-compose up -d server

三、Linux服务器配置

1.docker创建容器

找到docker的docker-compose.yaml文件,在文件里面添加以下代码:

代码如下(示例):

server:
    image: server:latest
    container_name: server
    ports:
      - "80:8080"
    volumes:
      - /home/docker/volume/server:/config
    networks:
      - gianture
    privileged: true

2.配置nginx文件

找到nginx的default.conf文件,新增以下内容

location /api/v1/ {
        proxy_pass http://server:端口号/;
    }

四、浏览器访问

浏览器访问地址为:http://服务器ip地址/api/v1/
例如:http://127.0.0.1/api/v1/doc.html