国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Jenkins進行持續部署(PHP代碼)

fjcgreat / 2277人閱讀

摘要:查看初始密碼,這里我們的容器是首次進入,需要先安裝插件,這里我們選擇手工的去選擇一些插件就行了,因為我們如果只是集成的話用不了多少插件插件選擇我就不截圖說明了,和里面得插件可以先取消。

在docker項目中單機構建jenkins使用gitlab的webhook對項目進行持續部署注意本次項目是php項目沒有build和test部分,至于test部分我們下一節進行,本次只是進行一個提交部署的功能,本屆不會講到使用docker進行交付的方式

項目結構說明

其中data/jenkins 是存放狀態jenkins的目錄

CI-server.yml是jenkisn啟動結構

version: "3.0"
services:
  jenkins:
    image: jenkins:latest
    environment:
       DOCKER_URL: ""
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
#備份數據
      - "./data/jenkins:/var/jenkins_home"
      - "./dockerfiles/jenkins/.ssh:/var/jenkins_home/.ssh"
    ports:
      - "8999:8080"
#      - "50000:50000"
docker-compose 編排的項目結構

docker-production.yml和docker-compose.yml的差異只是關閉了安全端口,使用了一些線上的配置文件而已

version:  "3.2"
services:
  nginx:
    image: nginx:1.13.3
    ports:
      - "80:80"
    links:
      - "php-fpm:php-fpm"
    volumes:
#網站目錄
      - ./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:
#網站目錄
      - ./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
#掛載站點日志
      - ./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構建工具
  composer:
    image: composer:1.4.2
    volumes:
    #網站目錄
      - ./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 install
Step1,單機服務器部署jenkins和docker編排的項目

這里我們把服務器命令為:zushouyou

服務器預先需要進行

1.優化

2.安裝 git docker

3.clone 項目下來

git clone project..

Step2,克隆完成項目以后啟動jenkins
docker-compose -f CI-server.yml up -d

如果發現jenkins容器掛了,查看日志,添加權限,重啟容器就行了

Step3,配置Jenkins

在CI-server.yml中我們映射了 8999->8080端口,所以我們只要訪問這個端口就可以訪問到jenkins了,如果服務拒絕,請檢查服務器商安全組,iptables規則,firewalld等防火墻。

然后我們就能訪問歡迎界面了。

查看初始密碼,這里我們的容器id是 f8

docker exec -it f8 bash -c "cat /var/jenkins_home/secrets/initialAdminPassword"
60e74c836b25402581cb0daae95b65a4

首次進入,需要先安裝插件,這里我們選擇手工的去選擇一些插件就行了,因為我們如果只是集成的話用不了多少插件

插件選擇我就不截圖說明了,build tools 和pipline里面得插件可以先取消。
比需要的插件如下

在安裝完成之后配置用戶名和賬號,最后還需要安裝一些第三方的插件


系統管理>管理插件
1.ssh,這個插件便于到遠程ssh主機上執行命令

2.webhook,這里我們是gitlab其他同理

在安裝完成以后,最好還是重啟一下,避免出現問題

Step4,配置Job 系統設置先配置SSH Server和Git的SSH

先讓宿主機能通過ssh進行pull

1.生成rsa

2.添加到git網站公鑰

3.如果能直接pull,說明OK了

4.配置jenkins的server

配置SSH主機

5.完事后回到主頁開始job吧

1.

2.

3.

4.執行構建

最后就只配置一下通知了,
gitlab的webhook配置一下

$RUL/generic-webhook-trigger/invoke?token=fuck

這樣就完成了一次自動化部署的過程。請記住,這篇文章只是讓我們了解了一些簡單的原理,其中包含build,test最后才是ci,如果我們前面的工作不去實現做,這樣并沒有什么意義,只是做了一個自動化的腳本。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25689.html

相關文章

  • fir.im weekly - 「 持續集成 」實踐教程合集

    摘要:來這里看看的工程師如何進行持續集成與持續部署。主要介紹了豆瓣移動持續集成和測試相關實踐,用工具化自動化社會化測試來解決遇到的問題,將打包發布環節自動化。這期的持續集成實踐分享就到這里。 我們常看到許多團隊和開發者分享他們的持續集成實踐經驗,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等項目搭建持續集成的實踐,以及一些國內外公司的內部持續集成...

    A Loity 評論0 收藏0
  • 聯調環境快速部署——基于docker-compose的CI/CD實踐

    摘要:三部署架構說明這個方案僅適用于小公司敏捷項目團隊聯調測試環境的部署,同時也可以作為學習入門的,并不適用于有一定規模的生產環境。另外,建議把測試域名泛解析到部署這臺服務的機器。模塊配置部署腳本業務模塊的配置基本是通過部署腳本來操作的。 項目地址: https://github.com/xiongwilee...基本特性: 快捷部署多人nginx+php的開發測試環境,也可以擴展構建其...

    xiaokai 評論0 收藏0
  • 聯調環境快速部署——基于docker-compose的CI/CD實踐

    摘要:三部署架構說明這個方案僅適用于小公司敏捷項目團隊聯調測試環境的部署,同時也可以作為學習入門的,并不適用于有一定規模的生產環境。另外,建議把測試域名泛解析到部署這臺服務的機器。模塊配置部署腳本業務模塊的配置基本是通過部署腳本來操作的。 項目地址: https://github.com/xiongwilee...基本特性: 快捷部署多人nginx+php的開發測試環境,也可以擴展構建其...

    klinson 評論0 收藏0

發表評論

0條評論

fjcgreat

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<