使用drone——10分钟搞定的内网自动部署_drone 使用-程序员宅基地

技术标签: 工具  ci/cd  docker  

10分钟搞定的内网自动部署

获取gitlab的权限(Create an OAuth Application)

在这里插入图片描述

重定向的URL必须是drone 安装的机器路径可以是IP地址

例如: 192.168.29.11/login

在这里插入图片描述

创建一个gitlabdrone的共享秘钥

$ openssl rand -hex 16
bea26a2221fd8090ea38720fc445eca6

docker 启动

# 注意!!! 替换需将花括号一起替换掉
$ docker run \
  --volume=/var/lib/drone:/data \        # 数据库保存地址,自定义
  --env=DRONE_GITLAB_SERVER=https://gitlab.com \   # gitlab 网址,内网可以是IP地址
  --env=DRONE_GITLAB_CLIENT_ID={
    {
    DRONE_GITLAB_CLIENT_ID}} \  # 第一步生成的client_id
  --env=DRONE_GITLAB_CLIENT_SECRET={
    {
    DRONE_GITLAB_CLIENT_SECRET}} \   # 第一步生成的client_secret
  --env=DRONE_RPC_SECRET={
    {
    DRONE_RPC_SECRET}} \   # 第二步生成的秘钥
  --env=DRONE_SERVER_HOST={
    {
    DRONE_SERVER_HOST}} \  # drone 运行的服务器地址
  --env=DRONE_SERVER_PROTO={
    {
    DRONE_SERVER_PROTO}} \  # 指定http  
  --publish=80:80 \
  --publish=443:443 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone:1
  
  

安装runner

docker-runner
docker run -d \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e DRONE_RPC_PROTO=http \
  -e DRONE_RPC_HOST=https://gitlab.com \
  -e DRONE_RPC_SECRET={
    {
    DRONE_RPC_SECRET}} \
  -e DRONE_RUNNER_CAPACITY=2 \
  -e DRONE_RUNNER_NAME=${
    HOSTNAME} \   # 这个不需要替换,默认为机器的名称
  -p 3000:3000 \
  --restart always \
  --name runner \
  drone/drone-runner-docker:latest
ssh-runner
  
  docker run -d \
  -e DRONE_RPC_PROTO=http \
  -e DRONE_RPC_HOST=https://gitlab.com \
  -e DRONE_RPC_SECRET={
    {
    DRONE_RPC_SECRET}} \
  -p 3000:3000 \
  --restart always \
  --name runner \
  drone/drone-runner-ssh

log

time="2021-06-21T03:35:08Z" level=info msg="starting the server" addr=":3000"
time="2021-06-21T03:35:08Z" level=info msg="successfully pinged the remote server"

如何使用

使用目的: 将GO web 项目 通过dockerfile 进行打包运行,

故,我将使用ssh-runner

FROM golang:1.14 as builder

ENV GOSUMDB off
ENV GOPROXY https://goproxy.cn
ENV GO111MODULE on

# 增加分层,减少下载依赖包
WORKDIR /go/cache
ADD go.mod .
ADD go.sum .
RUN go mod download

RUN mkdir -p /go/src/project
WORKDIR /go/src/project

COPY . .
#RUN echo -e http://mirrors.ustc.edu.cn/alpine/v3.7/main/ >> /etc/apk/repositories
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main .

FROM alpine:latest
RUN apk update && apk add --no-cache ca-certificates


# 设置alpine 时间为上海时间
RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata


WORKDIR /root/
COPY --from=builder /go/src/project/main .
COPY --from=builder /go/src/project/config.yaml .
COPY --from=builder /go/src/project/run.sh .

EXPOSE 8888


ENTRYPOINT ["/root/main"]

run.sh

简单脚本,可以根据自己要求,修改

#!/usr/bin/env bash

#定义应用名

echo "应用名称为:$1";
echo "应用使用端口:$2"
# 执行相关命令
echo '根据dockerfile 构建镜像'
docker build -f Dockerfile -t   $1 .
docker stop   $1
echo docker rm $1
docker rm   $1
echo docker run -d --name=  $1 -p $2:$2 -v /data/www/log/$1/:/log   $1:latest
docker run -d --name=$1 -p $2:$2 -v /data/www/log/$1/:/log   $1:latest 
#echo "清理中间镜像,可以一个月清一次的"
#docker image prune -f

.drone.yml

name: default
kind: pipeline
type: ssh


server:
  host: {
    IP}
  user: {
    user}
  password:
    from_secret: password    # 在drone 里面的项目进行配置


steps:
  - name: publish
    commands:
      - chmod 755 run.sh
      - ./run.sh  {
    {
    应用名称}}  8888

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xyjworkgame/article/details/118154239

智能推荐

Sqoop ERROR metastore.GenericJobStorage: Cannot restore job-程序员宅基地

文章浏览阅读613次,点赞2次,收藏2次。我的环境为 CDH 6.2 sqoop1.4.7 出现这个错误。我这里不考虑没有创建JOB的情况。因为,我已经创建几次job。同时我执行运行job时,有时可以运行,有时不可以运行。20/04/27 10:22:41 ERROR metastore.GenericJobStorage: Cannot restore job: acc_account_ply_base_job20/04/27 10..._error metastore.genericjobstorage: cannot restore job: myjob_incremental_imp

git基本命令的使用以及使用原理的总结-程序员宅基地

文章浏览阅读574次,点赞11次,收藏23次。由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的JavaScript面试题文档,或更多前端资料可以点此处即可获取!!!。来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)[外链图片转存中…(img-MRz3uxG8-1711663304128)][外链图片转存中…(img-lOUaHxYh-1711663304129)]

三星是如何成为全球最大智能手机厂商的_手机厂商用的都是三星-程序员宅基地

文章浏览阅读5.4k次。三星是如何成为全球最大智能手机厂商的腾讯科技[微博]瑞雪2013年03月29日14:32分享[导读]类似海尔张瑞敏怒砸冰箱的事情,也曾在三星上演。1995年,李健熙曾将15万部劣质手机付之一炬。腾讯科技讯(瑞雪)北京时间3月29日消息,国外媒体近日刊载文章,讲述了三星从二流电视生产商变成世界上最强大的电子产品厂_手机厂商用的都是三星

ubuntu 12.04 /sbin/ldconfig.real: /usr/local/lib/*.so.8 不是符号连接 解决办法_/usr/local/lib/不是符号链接-程序员宅基地

文章浏览阅读3.2k次。最近在ubuntu12.04下使用sudo apt-get install安装软件的时候最后总会报这种错误。建立硬连接即可解决:sudo ln -sf /usr/local/lib/libprotobuf.so.8.0.0 /usr/local/lib/libprotobuf.so.8截图上传没成功,麻烦。在弄一次。_/usr/local/lib/不是符号链接

java实现单链表反转_java反转单链表-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏7次。单链表是一种常见的数据结构,由一个个节点组成。每个节点包括两部分:数据域和指针域,数据域用来存放数据,指针域记录下一个节点的内存地址。在java中定义如下:public class Node { private Object data;//数据域 private Node next;//指针域 public Node(Object data){ this.data = data; } public Node(Object data,_java反转单链表

个人开发者上架App流程-程序员宅基地

文章浏览阅读334次,点赞4次,收藏6次。个人开发者完全可以将自己开发的App上传至应用商店进行上架。本文将介绍上架流程的通用步骤,包括确定App功能和定位、准备相关资料、开发App、提交审核、发布App和宣传推广等内容。个人开发者完全有能力将自己开发的App上架至应用商店。上架流程包括确定功能和定位、准备资料、开发App、提交审核、等待通过、发布App以及宣传推广等多个关键步骤。在整个过程中,遵循规定、提升技术能力和创新能力是至关重要的。

随便推点

如何从零将vue+springboot项目打包部署到云服务器(亲测,图文教程超详细!!)_spring boot vue 部署 图解-程序员宅基地

文章浏览阅读5.2k次,点赞30次,收藏115次。手把手教如何将个人项目部署到云服务器(超详细!!)步骤目录手把手教如何将个人项目部署到云服务器(超详细!!)前言一、云服务器设置1.1 首先去购买一个云服务器,阿里或腾讯,具体步骤就不讲了1.2 拿到服务器后先修改密码1.3 修改服务器安全组策略1.4 远程连接云服务器二、远程服务器环境配置2.1 安装jdk(1) 将Linux系统下自带JDK(如果原先安装过,无则忽略)的删除(2) JDK11的安装(3) 设置JAVA_HOME2.2 安装配置MySQL(1)下载mysql(2)卸载Maria DB_spring boot vue 部署 图解

Docker容器—Windows下的安装与使用_docker windows容器-程序员宅基地

文章浏览阅读5.8k次,点赞3次,收藏12次。Docker容器—Windows下的安装与使用_docker windows容器

云原生数据库性能对比(阿里云、百度智能云、腾讯云)-程序员宅基地

文章浏览阅读1.7k次,点赞27次,收藏27次。SysBench 是一个跨平台且支持多线程的模块化基准测试工具,用于评估系统在运行高负载的数据库时相关核心参数的性能表现。可绕过复杂的数据库基准设置,甚至在没有安装数据库的前提下,快速了解数据库系统的性能。

CAS单点登录6 - 服务端自定义返回的用户信息_如何获取单点登录自定义得值-程序员宅基地

文章浏览阅读3.9k次。原理返回的用户信息是在deployerConfigContext.xml中的配置的既然想自定义返回的用户信息,那么继承org.jasig.services.persondir.support.StubPersonAttributeDao就好了1、创建com.jadyer.sso.authentication extends StubPersonAttributeDao并复写getPer..._如何获取单点登录自定义得值

5G/NR 学习笔记: 3GPP 物理层概述38.201_3gpp物理层流程-程序员宅基地

文章浏览阅读6.4k次,点赞7次,收藏40次。物理信道和调制方式下行信道:PDSCH,PDCCH,PBCH 上行信道:PRACH,PUSCH,PUCCH下行调制:QPSK,16QAM,64QAM,256QAM 上行调制:QPSK,16QAM,64AQM,256QAM for OFDM with a CP;π/2-BPSK, QPSK, 16QAM, 64QAM and 256QAM for DFT-s-OFDM with a CP..._3gpp物理层流程

jq 解析josn字符串-程序员宅基地

文章浏览阅读97次。1. var obj = jQuery.parseJSON("${ruleModel.rules}");2. var obj = eval("("+"${ruleModel.rules}"+")");//上面两种方式解析josn 字符串,第一种要求规范的josn格式(要求键和值 都要有双引号),第二种能够满足非规范格式的josn字符串 ..._jq 如何解析带-字段

推荐文章

热门文章

相关标签