摘要:域名和應(yīng)用記得一樣接著我們創(chuàng)建一個管理員用戶,然后其他的都默認,點擊立即安裝完成。初始化成功之后我們可以在里邊創(chuàng)建一個倉庫,然后登陸。比如配置文件需要的密鑰,用戶名和密碼,一些環(huán)境變量都可以在設(shè)置,構(gòu)建狀態(tài)徽章可以在你的項目文件加上去。
drone是一個基于容器的本地持續(xù)交付平臺,和Jenkins是差不多的,然后配合輕量級的gogs來作為git管理,都是基于golang開發(fā)的很符合我的需求,我們來把它們結(jié)合作為一個完整的CI、CD平臺。
首先我們要先安裝docker,上次的篇幅我們已經(jīng)說過了我就不贅述了。
需要的東西有:linux,docker,docker-compose,drone,gogs,git等。
安裝gogs和drone配合榮鋒亮大哥的yml文件和docker-compose我們可以很容易安裝他們:
version: "3" services: drone-server: image: drone/drone:latest ports: - "8080:80" - 8843:443 - 9000 volumes: - ./drone:/var/lib/drone/ - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_OPEN=true - DRONE_SERVER_HOST=drone-server - DRONE_DEBUG=true - DRONE_GIT_ALWAYS_AUTH=false - DRONE_GOGS=true - DRONE_GOGS_SKIP_VERIFY=false - DRONE_GOGS_SERVER=http://gogs:3000 - DRONE_PROVIDER=gogs - DRONE_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite - DRONE_DATABASE_DRIVER=sqlite3 - DRONE_SERVER_PROTO=http - DRONE_RPC_SECRET=ALQU2M0KdptXUdTPKcEw - DRONE_SECRET=ALQU2M0KdptXUdTPKcEw gogs: image: gogs/gogs:latest ports: - "10022:22" - "3000:3000" volumes: - ./data/gogs:/data depends_on: - mysql mysql: image: mysql:5.7.16 volumes: - ./gogs/mysql:/var/lib/mysql - /var/run/docker.sock:/var/run/docker.sock ports: - 3308:3306 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: pass MYSQL_DATABASE: gogs MYSQL_USER: gogs MYSQL_PASSWORD: pass TZ: Asia/Shanghai drone-agent: image: drone/agent:latest depends_on: - drone-server environment: - DRONE_RPC_SERVER=http://drone-server - DRONE_RPC_SECRET=ALQU2M0KdptXUdTPKcEw - DRONE_DEBUG=true - DOCKER_HOST=tcp://docker-bind:2375 - DRONE_SERVER=drone-server:9000 - DRONE_SECRET=ALQU2M0KdptXUdTPKcEw - DRONE_MAX_PROCS=5 docker-bind: image: docker:dind privileged: true # command: --storage-driver=overlay
我們創(chuàng)建一個存放docker-compose.yml文件的目錄比如就叫g(shù)ogs,然后我們把這些yml保存成docker-compose.yml,然后執(zhí)行docker-compose來安裝:
$ docker-compose up -d
配合yml文件,我們就安裝好了drone-server和drone-agent還有g(shù)ogs,然后我們用瀏覽器打開http://localhost:3000/來進入gogs并初始化它。
域名和應(yīng)用URL記得一樣接著我們創(chuàng)建一個管理員用戶,然后其他的都默認,點擊立即安裝完成。
初始化成功之后我們可以在gogs里邊創(chuàng)建一個倉庫,然后登陸drone。
drone打開瀏覽器輸入http://localhost/直接進入drone,密碼是gogs的你的剛剛的賬戶和密碼。
我們會看到一個剛剛創(chuàng)建的倉庫,激活它!
激活之后,我們回到gogs那邊,倉庫的設(shè)置里邊的webhook應(yīng)該已經(jīng)配置好了
我們可以測試web hook,如果沒有問題的話,應(yīng)該會提示成功。
上傳源碼測試沒有問題之后,我們初始化我們的代碼文件夾為git倉庫,然后push到gogos上邊
然后為你的倉庫加上.drone.yml配置文件,drone-server會自動讀取這個文件進行CI、CD操作等。以下這個是我們的示例文件
kind: pipeline name: demo steps: - name: build image: golang:1.11.4 commands: - pwd - go version - go build . - go test demo/util # - name: frontend # image: node:6 # commands: # - npm install # - npm test - name: publish image: plugins/docker:latest settings: username: from_secret: docker_username password: from_secret: docker_password repo: example/demo tags: latest - name: deploy image: appleboy/drone-ssh pull: true settings: host: example.me user: root key: from_secret: deploy_key script: - cd /data - mkdir app/ - cd /data/app - docker rmi -f example/demo - echo "login docker" - echo "login success, pulling..." - docker pull example/demo:latest - echo "image running" - docker run -p 8088:8088 -d example/demo - echo "run success"
我們首先進行簡單的golang build和test操作然后根據(jù)Dockerfile文件把我們的程序構(gòu)建成docker鏡像,接著上傳到docker hub中,然后通過drone-ssh插件部署這個鏡像。
開始構(gòu)建有了配置文件之后,推送代碼我們就可以去drone查看構(gòu)建進度:
drone的設(shè)置在進入drone的時候,選擇一個項目我們可以進行一些必要的設(shè)置,比如配置secrets,定時任務(wù)和徽章等等。
比如配置文件需要的密鑰,用戶名和密碼,一些環(huán)境變量都可以在secrets設(shè)置,構(gòu)建狀態(tài)徽章可以在你的項目README.md文件加上去。
項目加上徽章:
示例代碼,本文完。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27743.html
摘要:所以我們選一個倉庫倉庫比較多,我這里選用,都行,根據(jù)需求自行選擇訪問端口,然后就沒有然后了功能沒有那么強大,不過占用資源少,速度快,我們穩(wěn)定運行了幾年了。 kubernetes集群三步安裝 CI 概述 用一個可描述的配置定義整個工作流 程序員是很懶的動物,所以想各種辦法解決重復(fù)勞動的問題,如果你的工作流中還在重復(fù)一些事,那么可能就得想想如何優(yōu)化了 持續(xù)集成就是可以幫助我們解決重復(fù)的代碼...
摘要:是的最佳實踐部署編寫文件的部署及其簡單,采用的方式,類似于。具體如下此處需要注意的是在處的。登錄配置項目此處輸入的用戶名和密碼是的。支持和兩個數(shù)據(jù)庫。新的配置文件如下仔細查看關(guān)于的文檔,需要我們手動創(chuàng)建數(shù)據(jù)庫。其中有和相關(guān)的。 前言 整個基于k8s的pass平臺,關(guān)鍵的一部分就是CICD。CICD又是devops的關(guān)鍵部分。之前主流的工具是Jenkins。今天主要介紹的是drone。...
摘要:是的最佳實踐部署編寫文件的部署及其簡單,采用的方式,類似于。具體如下此處需要注意的是在處的。登錄配置項目此處輸入的用戶名和密碼是的。支持和兩個數(shù)據(jù)庫。新的配置文件如下仔細查看關(guān)于的文檔,需要我們手動創(chuàng)建數(shù)據(jù)庫。其中有和相關(guān)的。 前言 整個基于k8s的pass平臺,關(guān)鍵的一部分就是CICD。CICD又是devops的關(guān)鍵部分。之前主流的工具是Jenkins。今天主要介紹的是drone。...
摘要:原文鏈接測試環(huán)境生產(chǎn)環(huán)境騰訊云容器服務(wù)官方網(wǎng)站安裝請使用或升級到最新版本。注意版本的不同。與或集成請參考官方文檔的配置。之后使用以下命令啟動即可安裝詳情請參考使用與類似,項目中包含即可使用。本站介紹的使用方法請查看這里示例 原文鏈接:http://www.khs1994.com/ci/dro... 測試環(huán)境:macOS + Drone + Gogs + Docker Registry ...
閱讀 2159·2023-04-26 00:38
閱讀 1943·2021-09-07 10:17
閱讀 896·2021-09-02 15:41
閱讀 646·2021-08-30 09:45
閱讀 551·2019-08-29 17:25
閱讀 3219·2019-08-29 15:07
閱讀 2199·2019-08-29 12:52
閱讀 3742·2019-08-26 13:35