Docker部署项目(后端)

Jenkins+Docker部署后端项目

前言

适用于Jenkins+Docker插件、环境安装好的
(环境准备可参考:https://www.cnblogs.com/wengshaohang/p/12301016.html)。

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、服务器上创建文件夹,并存放配置文件

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中是否上传新的代码)
在这里插入图片描述

2、构建

  1. 调用顶层Maven目标---->未知
    在这里插入图片描述
  2. 执行shell----->编译、构建镜像、打包代码

在这里插入图片描述

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值