dockerベースのCI/CD

4252 ワード

準備条件
  • dockerのマシンを使用して、ユーザーを追加する際にユーザーを指定するuid:sudo groupadd-g 500 work&&useradd-g 500-u 500 workを必要とします.そうしないと、コンテナがマウントデータボリュームにアクセスできないという問題が発生する可能性があります.
  • OS  Requirements:
    https://download.docker.com/linux/centos/docker-ce.repo
      64bit-CentOs 7
  • Docker Installation(参照)https://docs.docker.com/engine/installation/linux/centos/#install-using-the-repositoryバージョン:CE(コミュニティ版)インストール:sudo yum install-y yum-utils device-mapper-persistent-data lvm 2&&sudo yum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.repo && sudo yum makecache fast && sudo yum -y install docker-ce 
  • 編集/lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd  -g /data/lib/docker/
  • , docker
    sudo mkdir -p /data/lib/docker
    sudo systemctl daemon-reload  sudo systemctl start docker
  • ユーザグループを する(workアカウント を する)sudo groupadd docker;sudo usermod-aG docker work
  • sed -i   's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g'  /etc/sysctl.conf  && sysctl -p

  • Jenkinsマシン:
    ミラーウェアハウス
  • Harbor Installation(ミラーウェアハウス ツール)(git:https://github.com/vmware/harbor)   sudo yum -y install wget && mkdir -p/data/soft && sudo chown -R work:work/data/soft && cd/data/soft && wget https://github.com/vmware/harbor/releases/download/v1.1.0/harbor-online-installer-v1.1.0.tgz && tar zxf harbor-online-installer-v1.1.0.tgz cd harbor&&harborを cfg  && sh install.sh

  • :harbor.cfg
    phpベースミラー
  • Dockerfile:     FROM centos:centos6.6    MAINTAINER wangqingxin    ADD bfrontapi.tar.gz/data/deploy/    COPY run.sh/data/deploy/bfrontapi/    RUN groupadd -g 500 work && \             useradd -u 500 -g 500 work && \             ln -s/data/deploy/opt/deploy &&\             ln -s/lib64/libpcre.so.0.0.1/lib64/libpcre.so.1 &&\             chown work:work/data/deploy/bfrontapi/run.sh &&\             chmod u+x/data/deploy/bfrontapi/run.sh &&\             cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime     USER work     WORKDIR /data/deploy/bfrontapi/     VOLUME /data/deploy/bfrontapi/log
  • run.sh     #!/bin/sh    /data/deploy/bfrontapi/hhvm/bin/hhvm_control start     sh/data/deploy/bfrontapi/webserver/loadnginx.sh start     trap "sh/data/deploy/bfrontapi/webserver/loadnginx.sh stop; exit"TERM     while true     do          sleep 5     done

  • php (tag-push trigger)
  • build.sh docker login -u RD -p rdV5@harbor. https://harbor.qyvideo.net       docker pull harbor.qyvideo.net/php-api/php-api:basic       git_tag=`git tag|tail -1`       URL='harbor.qyvideo.net'       TAG=$URL/php-api/php-api:$git_tag       docker build -t $TAG ./docker/.       docker push $TAG       docker rmi $TAG  
  • Dockerfile FROM harbor.qyvideo.net/php-api/php-api:basic       MAINTAINER wangqingxin       ADD php-app.tgz/data/deploy/bfrontapi       RUN sh/opt/deploy/bfrontapi/deployconf.sh/opt/deploy/bfrontapi production restart &&\                mkdir -p/home/work/odp/log &&\                touch/home/work/odp/log/error.log       EXPOSE 8000       CMD /data/deploy/bfrontapi/run.sh  
  • jenkinsトリガ インストールgitlabプラグイン
  • gitlab webhook
  • その
  • Docker Component Installation( )https://docs.docker.com/compose/install/)   sudo -i; curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname-s`-`uname-m`>/usr/local/bin/docker-compose&&chmod+x/usr/local/bin/docker-compose which docker-compose(ない は/usr/local/bin/パスに )
  • swarm(dockerクラスタ ツール)managerとして1 、docker swarm init workerとして1 、docker swarm join--token SWMTKN-1-23 xycpsnfhn 42 zysnc 1 y 738 cf 6 rpi 1 oy 6 om 4 pvo 0 jsb 355 ydcv-0 gia 3 fi 7 uob 0 gbpo 7 t 85 x 1 hi 4 10.19.245:2377
  • よくある
  • yumインストールレポートRpmdb checksum is invalidエラー yum install**trueまたはyum clean all
  • Dockerミラーsizeが きすぎるDocker file yum update( コマンドの わりにできるだけ のミラーを してください)chownコマンドを しないようにするターゲットオブジェクトが きい はdockerミラーを する にchown