1. 程式人生 > >docker與jenkins的自動化CI/CD流水線實戰(php-svn)

docker與jenkins的自動化CI/CD流水線實戰(php-svn)

環境需求

docker與jenkins的自動化CI/CD流水線實戰(php-svn)

編寫dockerfile

備註:內容太長,寫在自己的電腦上了
流程:
1、yum安裝基礎服務,如gcc,make,openssl
2、nginx1.14.0安裝
3、php-7.1.19安裝
4、supervisord監聽nginx,php服務
5、#docker防止中文亂碼
6、安裝crontabs 服務
echo "/1 * bash /data/shell/check_supervisord.sh >> /root/check_supervisord.log" >> /var/spool/cron/root
7、必須 要將crond給自啟動,不然進入容器還是不執行
RUN systemctl enable crond

build

docker與jenkins的自動化CI/CD流水線實戰(php-svn)

docker build -t 192.168.1.232/library/nginx-php:v1.14_v7.1.19 -f Dockerfile-nginx-php .

docker_run

docker run --privileged -itd --name php-test4 --mount type=bind,src=/data/www,dst=/data/www --mount type=bind,src=/mnt,dst=/mnt -p 801:80 192.168.1.232/library/nginx-php:v1.14_v7.1.19

檢視:docker ps -l
進入容器:ps -ef 看是否正常啟動

錯誤:
[[email protected] php-7.1.19]# systemctl start supervisord
Failed to get D-Bus connection: Operation not permitted

解決:
docker run --privileged -itd --name php-test4 --mount type=bind,src=/data/www,dst=/data/www --mount type=bind,src=/mnt,dst=/mnt -p 801:80 192.168.1.232/library/nginx-php:v1.14_v7.1.19

錯誤:
為什麼建立容器,不執行crontab -l的內容呢

解決:dockerfile 時需要將systemctl enable crond 開機啟動