鏈接:https://zhuanlan.zhihu.com/p/24896056
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
這是參加Rancher 深圳站線下活動時候的一個演示項目
現(xiàn)在貼一下整個的步驟,供大家參考~
一,Git
可選的git系統(tǒng)如下,示例用gogs
- Gogs
- Gitlab
- Github
Gogs,Docker-Compose安裝:
```version: '2'services: app: image: gogs/gogs:0.9.113 ports: - "10022:22" - "10080:3000" volumes: - ./gogs:/data restart: always links: - mysql:mysql environment: - Domain=${GOGS_IP} - SSH_PORT=${GOGS_SSH_PORT} mysql: image: mysql:5.7.13 restart: always volumes: - ./mysql:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=gogs```
# envexport MYSQL_ROOT_PASSWORD={mysql_root_password}export GOGS_IP={ip}export GOGS_SSH_PORT=10022export GOGS_HTTP_PORT=10080# rundocker-compose up -d
瀏覽器打開:http:{ip}:{http_port} 完成安裝
登錄后創(chuàng)建測試項目:alpine-drone
二,Drone CI
Drone,Docker-compose安裝(Gogs):
version: '2'services: drone-server: image: thonatos/alpine-drone # 換成drone/drone:0.5.0 ports: - 80:8000 volumes: - ./drone:/var/lib/drone/ restart: always environment: - DRONE_OPEN=true - DRONE_DEBUG=false - DRONE_GOGS=true - DRONE_GOGS_URL=http://${GOGS_IP}:${GOGS_HTTP_PORT} - DRONE_GOGS_PRIVATE_MODE=true - DRONE_GOGS_SKIP_VERIFY=true - DRONE_SECRET=${DRONE_SECRET} # - DRONE_ADMIN=suyi drone-agent: image: thonatos/alpine-drone # 換成drone/drone:0.5.0 command: agent restart: always depends_on: [ drone-server ] volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_SERVER=ws://drone-server:8000/ws/broker - DRONE_SECRET=${DRONE_SECRET}
Drone,Docker-compose安裝(Github):
version: '2'services: drone-server: image: drone/drone:0.5.0 environment: DRONE_GITHUB: true DRONE_GITHUB_CLIENT: 95c0282573633eb25e82 DRONE_GITHUB_SECRET: 30f5064039e6b359e075


運行Drone:
# envexport DRONE_SECRET={secret}# rundocker-compose up -d
瀏覽器打開:http://{ip}:{drone_port},使用安裝gogs設(shè)置的管理員賬號密碼登錄,點擊右側(cè)account看到當(dāng)前項目,點開項目旁邊的構(gòu)建選項即可

三,配置Docker自動構(gòu)建
下載并配置 drone cli:
# macbrew tap drone/dronebrew install drone --devel# http://readme.drone.io/usage/getting-started-cli/# 下載并配置到PATH中# runexport DRONE_SERVER=http://drone.mycompany.comexport DRONE_TOKEN={} # token剛才drone的管理界面account中點show_token
在項目內(nèi)創(chuàng)建.drone.yml文件,內(nèi)容如下:
pipeline: docker: # registry: {} # 私有registry地址 # auth: {} # auth_token image: plugins/docker repo: thonatos/alpine-drone # 修改為你對應(yīng)的repo名字 tags: latest # tags