gitlab+drone自动部署springboot项目

前言

        公司有使用drone实现自动部署的功能,我想来觉得有趣便在网上查阅资料自己动手部署了一次。在这里打算写篇文章记录所有过程以备后续使用,有需求的朋友可以进行参考。

步骤

1.使用虚拟机搭建Linux环境

        我这儿单纯为了练手,直接在Windows上安装VMware来进行操作,正常情况下应该是在Linux上安装Docker然后进行后续操作,如果没有这种情况可以跳过这一步。这里强烈建议使用Linux系统进行部署,不要使用windows安装docker。之前为了偷懒直接使用 Docker-desktop 后来发现安装drone runner时存在环境问题,只有推倒重来。

2.安装Linux系统,由于CentOS已经停止维护了,我这里使用的AlmaLinux进行平替。安装过程省略。

3.查看本机ip

ifconfig

4.使用xshell连接服务器

5.安装docker

6.使用docker compose部署gitlab

version: '3.6'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    ports:
      - '82:80'
      - '8443:443'
    volumes:
      - '/data/docker-v/gitlab/config:/etc/gitlab'
      - '/data/docker-v/gitlab/data:/var/opt/gitlab'
    restart: always
    container_name: gitlab

7.使用docker compose部署drone

version: '3'
services:
  drone-server:
    restart: always ## 容器自动重启
    ports:
      - '5000:80' ## 映射到宿主机的端口
      - '5001:443'
    volumes:
      - /data/docker-v/drone/data:/data
    environment:
      - DRONE_GITLAB_SERVER=http://192.168.186.128:82
      - DRONE_GITLAB_CLIENT_ID=bba84de0338aeb678f7ed11a4bf4e007d9f46ca0eba5cfc94f5d6d8a90c54304 ## gitee中生成的CLIENT ID
      - DRONE_GITLAB_CLIENT_SECRET=gloas-27c3252505f28a0b9e470a26978bb3095179ff9754c7037f49caaf1048c64886 ## gitee中生成的SECRET
      - DRONE_RPC_SECRET=303b6068fb64fe4296da1f1def6295db ## openssl rand -hex 16 自动生成
      - DRONE_SERVER_HOST=192.168.186.128:5000 ## 端口需要和映射至宿主机的一致
      - DRONE_SERVER_PROTO=http
      - DRONE_USER_CREATE=username:root,admin:true ## gitee中的用户名
      - DRONE_LOGS_TEXT=true
      - DRONE_LOGS_PRETTY=true
      - DRONE_LOGS_COLOR=true
      - TZ=Asia/Shanghai
    privileged: true
    image: drone/drone:2.22.0
    container_name: drone

  drone-runner:
    image: drone/drone-runner-docker:latest
    ports:
      - '3000:3000'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_RPC_PROTO=http
      - DRONE_RPC_HOST=192.168.186.128:5000
      - DRONE_RPC_SECRET=303b6068fb64fe4296da1f1def6295db ## 与server服务中保持一致
      - DRONE_RUNNER_NAME=docker-worker
      - DRONE_RUNNER_CAPACITY=2
    privileged: true
    restart: always
    container_name: drone-runner

8.配置gitlab

9.配置drone

10.编写dockerfile和drone配置

FROM openjdk:8-jre-alpine

MAINTAINER wangliang

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN mkdir -p /app

WORKDIR /app

ADD ./target/demo-0.0.1-SNAPSHOT.jar ./

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories

RUN apk add --update ttf-dejavu fontconfig

CMD java -jar demo-0.0.1-SNAPSHOT.jar
kind: pipeline
type: docker
name: default
steps:

  - name: Maven-Build
    image: maven:3.6.3-jdk-8
    volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设 置
      - name: maven_cache
        path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载
    commands:
      - mvn clean package -DskipTests
    when:
      branch: devLoop
      event: [ push ]

  - name: Docker-Build
    image: plugins/docker:linux-amd64
    pull: if-not-exists
    volumes:
      - name: socker
        path: /var/run/docker.sock
    commands:
      - docker build -t xxxx/work-wl/drone-test:${DRONE_BUILD_NUMBER} .
      - docker stop spring && docker rm spring
      - docker run -d -p 8081:8081 --ulimit nofile=1024 --name spring registry.cn-chengdu.aliyuncs.com/work-wl/drone-test:${DRONE_BUILD_NUMBER}
    when:
      branch: devLoop
      event: [ push ]

volumes:
  - name: maven_cache
    host:
      path: /storge/drone/cache
  - name: socker
    host:
      path: /var/run/docker.sock

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值