Jenkins+Docker部署后端项目
前言
适用于Jenkins+Docker插件、环境安装好的
(环境准备可参考:https://www.cnblogs.com/wengshaohang/p/12301016.html)。
Docker自动化部署的步骤
-
后端开发人员
(1)填写项目部署申请单包含:部署服务器IP、源文件包名类型、项目和数据库端口号、gitlab地址等(最好能知道配置文件内容);
(2)在服务器上创建数据库;
(3)在服务器上创建后端项目文件夹,并放配置文件。 -
Jenkins
(1)创建项目基本配置;
(2)构建镜像,存为tar包;
(3)启动容器 -
服务器
(1)docker配置容器;
(2)配置nginx -
浏览器访问
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、构建
- 调用顶层Maven目标---->未知
- 执行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