摘要:查看初始密碼,這里我們的容器是首次進(jìn)入,需要先安裝插件,這里我們選擇手工的去選擇一些插件就行了,因?yàn)槲覀內(nèi)绻皇羌傻脑捰貌涣硕嗌俨寮寮x擇我就不截圖說(shuō)明了,和里面得插件可以先取消。
項(xiàng)目結(jié)構(gòu)說(shuō)明在docker項(xiàng)目中單機(jī)構(gòu)建jenkins使用gitlab的webhook對(duì)項(xiàng)目進(jìn)行持續(xù)部署注意本次項(xiàng)目是php項(xiàng)目沒有build和test部分,至于test部分我們下一節(jié)進(jìn)行,本次只是進(jìn)行一個(gè)提交部署的功能,本屆不會(huì)講到使用docker進(jìn)行交付的方式
其中data/jenkins 是存放狀態(tài)jenkins的目錄
CI-server.yml是jenkisn啟動(dòng)結(jié)構(gòu)
version: "3.0" services: jenkins: image: jenkins:latest environment: DOCKER_URL: "" volumes: - "/etc/localtime:/etc/localtime:ro" #備份數(shù)據(jù) - "./data/jenkins:/var/jenkins_home" - "./dockerfiles/jenkins/.ssh:/var/jenkins_home/.ssh" ports: - "8999:8080" # - "50000:50000"docker-compose 編排的項(xiàng)目結(jié)構(gòu)
docker-production.yml和docker-compose.yml的差異只是關(guān)閉了安全端口,使用了一些線上的配置文件而已
version: "3.2" services: nginx: image: nginx:1.13.3 ports: - "80:80" links: - "php-fpm:php-fpm" volumes: #網(wǎng)站目錄 - ./app:/var/www/html - ./dockerfiles/nginx/conf.d:/etc/nginx/conf.d:ro #日志文件 - ./logs/nginx:/var/log/nginx - /etc/localtime:/etc/localtime:ro restart: always command: nginx -g "daemon off;" ##mysql db mysql-db: image: mysql:5.7 volumes: - ./data/mysql:/var/lib/mysql:rw - ./logs/mysql:/var/lib/mysql-logs:rw - ./dockerfiles/mysql/conf.d:/etc/mysql/conf.d:ro - /etc/localtime:/etc/localtime:ro restart: always environment: MYSQL_ROOT_PASSWORD: zhaojun MYSQL_DATABASE: package_v1 MYSQL_USER: zhaojun MYSQL_PASSWORD: zhaojun redis-db: build: ./dockerfiles/redis restart: always volumes: - ./data/redis:/data - /etc/localtime:/etc/localtime:ro php-fpm: build: ./dockerfiles/php/ restart: always environment: TP_APP_DEBUG: 0 APP_DEBUG: 1 APP_DOCKER_DEV: 0 MYSQL_HOST: mysql-db MYSQL_DATABASE: zushouyou_v1 MYSQL_USER: root MYSQL_PASSWORD: zhaojun MYSQL_PORT: 3306 volumes: #網(wǎng)站目錄 - ./app:/var/www/html:rw #配置文件 - ./dockerfiles/php/php.ini:/usr/local/etc/php/php.ini:ro - ./dockerfiles/php/php-fpm.conf:/usr/local/etc/php-fpm.conf:ro - /etc/localtime:/etc/localtime:ro #掛載站點(diǎn)日志 - ./logs/php-fpm:/var/log/php-fpm:rw depends_on: - mysql-db - redis-db links: - mysql-db:mysql-db - redis-db:redis-db command: php-fpm ##job takser: image: node:6.9 environment: MYSQL_HOST: mysql-db SERVER_HOST: server volumes: - ./app/node-task:/task - /etc/localtime:/etc/localtime:ro links: - mysql-db:mysql-db - redis-db:redis-db - nginx:server working_dir: /task command: /bin/bash -c "npm install && node ./index.js" ##composer構(gòu)建工具 composer: image: composer:1.4.2 volumes: #網(wǎng)站目錄 - ./app:/app:rw working_dir: /app/webroot command: composer install ##前端工具 bower: image: digitallyseamless/nodejs-bower-grunt volumes: - ./app:/app:rw working_dir: /app/webroot command: bower installStep1,單機(jī)服務(wù)器部署jenkins和docker編排的項(xiàng)目
這里我們把服務(wù)器命令為:zushouyou
服務(wù)器預(yù)先需要進(jìn)行
1.優(yōu)化
2.安裝 git docker
3.clone 項(xiàng)目下來(lái)
git clone project..Step2,克隆完成項(xiàng)目以后啟動(dòng)jenkins
docker-compose -f CI-server.yml up -d
如果發(fā)現(xiàn)jenkins容器掛了,查看日志,添加權(quán)限,重啟容器就行了
Step3,配置Jenkins在CI-server.yml中我們映射了 8999->8080端口,所以我們只要訪問這個(gè)端口就可以訪問到j(luò)enkins了,如果服務(wù)拒絕,請(qǐng)檢查服務(wù)器商安全組,iptables規(guī)則,firewalld等防火墻。
然后我們就能訪問歡迎界面了。
查看初始密碼,這里我們的容器id是 f8
docker exec -it f8 bash -c "cat /var/jenkins_home/secrets/initialAdminPassword" 60e74c836b25402581cb0daae95b65a4
首次進(jìn)入,需要先安裝插件,這里我們選擇手工的去選擇一些插件就行了,因?yàn)槲覀內(nèi)绻皇羌傻脑捰貌涣硕嗌俨寮?/p>
插件選擇我就不截圖說(shuō)明了,build tools 和pipline里面得插件可以先取消。
比需要的插件如下
在安裝完成之后配置用戶名和賬號(hào),最后還需要安裝一些第三方的插件
系統(tǒng)管理>管理插件
1.ssh,這個(gè)插件便于到遠(yuǎn)程ssh主機(jī)上執(zhí)行命令
2.webhook,這里我們是gitlab其他同理
在安裝完成以后,最好還是重啟一下,避免出現(xiàn)問題
先讓宿主機(jī)能通過(guò)ssh進(jìn)行pull
1.生成rsa
2.添加到git網(wǎng)站公鑰
3.如果能直接pull,說(shuō)明OK了
4.配置jenkins的server
配置SSH主機(jī)
5.完事后回到主頁(yè)開始job吧
1.
2.
3.
4.執(zhí)行構(gòu)建
最后就只配置一下通知了,
gitlab的webhook配置一下
$RUL/generic-webhook-trigger/invoke?token=fuck
這樣就完成了一次自動(dòng)化部署的過(guò)程。請(qǐng)記住,這篇文章只是讓我們了解了一些簡(jiǎn)單的原理,其中包含build,test最后才是ci,如果我們前面的工作不去實(shí)現(xiàn)做,這樣并沒有什么意義,只是做了一個(gè)自動(dòng)化的腳本。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/25689.html
摘要:來(lái)這里看看的工程師如何進(jìn)行持續(xù)集成與持續(xù)部署。主要介紹了豆瓣移動(dòng)持續(xù)集成和測(cè)試相關(guān)實(shí)踐,用工具化自動(dòng)化社會(huì)化測(cè)試來(lái)解決遇到的問題,將打包發(fā)布環(huán)節(jié)自動(dòng)化。這期的持續(xù)集成實(shí)踐分享就到這里。 我們??吹皆S多團(tuán)隊(duì)和開發(fā)者分享他們的持續(xù)集成實(shí)踐經(jīng)驗(yàn),本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等項(xiàng)目搭建持續(xù)集成的實(shí)踐,以及一些國(guó)內(nèi)外公司的內(nèi)部持續(xù)集成...
摘要:三部署架構(gòu)說(shuō)明這個(gè)方案僅適用于小公司敏捷項(xiàng)目團(tuán)隊(duì)聯(lián)調(diào)測(cè)試環(huán)境的部署,同時(shí)也可以作為學(xué)習(xí)入門的,并不適用于有一定規(guī)模的生產(chǎn)環(huán)境。另外,建議把測(cè)試域名泛解析到部署這臺(tái)服務(wù)的機(jī)器。模塊配置部署腳本業(yè)務(wù)模塊的配置基本是通過(guò)部署腳本來(lái)操作的。 項(xiàng)目地址: https://github.com/xiongwilee...基本特性: 快捷部署多人nginx+php的開發(fā)測(cè)試環(huán)境,也可以擴(kuò)展構(gòu)建其...
摘要:三部署架構(gòu)說(shuō)明這個(gè)方案僅適用于小公司敏捷項(xiàng)目團(tuán)隊(duì)聯(lián)調(diào)測(cè)試環(huán)境的部署,同時(shí)也可以作為學(xué)習(xí)入門的,并不適用于有一定規(guī)模的生產(chǎn)環(huán)境。另外,建議把測(cè)試域名泛解析到部署這臺(tái)服務(wù)的機(jī)器。模塊配置部署腳本業(yè)務(wù)模塊的配置基本是通過(guò)部署腳本來(lái)操作的。 項(xiàng)目地址: https://github.com/xiongwilee...基本特性: 快捷部署多人nginx+php的開發(fā)測(cè)試環(huán)境,也可以擴(kuò)展構(gòu)建其...
閱讀 677·2021-10-09 09:41
閱讀 658·2019-08-30 15:53
閱讀 1084·2019-08-30 15:53
閱讀 1218·2019-08-30 11:01
閱讀 1576·2019-08-29 17:31
閱讀 997·2019-08-29 14:05
閱讀 1726·2019-08-29 12:49
閱讀 420·2019-08-28 18:17