dockerベースのCI/CD
4252 ワード
準備条件 dockerのマシンを使用して、ユーザーを追加する際にユーザーを指定するuid:sudo groupadd-g 500 work&&useradd-g 500-u 500 workを必要とします.そうしないと、コンテナがマウントデータボリュームにアクセスできないという問題が発生する可能性があります. OS Requirements: 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
https://download.docker.com/linux/centos/docker-ce.repo
64bit-CentOs 7 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