在當今快速發展的IT領域,自動化部署已成為提高工作效率和減少錯誤的關鍵。Jenkins作為持續集成/持續部署(CI/CD)的佼佼者,結合Docker容器技術和PHP編程語言,以及Ansible自動化工具,可以實現高效、可靠的自動化部署。
?
1、安裝Jenkins?
前面已經講過使用docker安裝Jenkins ,可以參考前面的文章 :?Vagrant + docker搭建Jenkins 部署環境-CSDN博客
2、安裝php環境,由于是在宿主機上運行的,所以需要先安裝php運行環境,redis環境
?
?
?
3、安裝nginx ,這是是需要在宿主機上面安裝,因為我的jenkins和服務器不在一臺機器上。
?
?
接下來我們先把nginx配置好,代碼目錄在?/htdocs/workspace下面:
nginx配置的文件內容如下:
server {listen 80;index index.php index.html;server_name hg.shop.com;root /htdocs/gitwork/shop/public;location / {# try_files $uri /index.php$is_args$args;if (!-e $request_filename){rewrite ^(.*)$ /index.php?s=$1 last; break;}}location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;error_log off;access_log /dev/null;}location ~ .*\.(js|css)?${expires 12h;error_log off;access_log /dev/null; }location /notice {proxy_pass http://192.168.33.10:20004; proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-real-ip $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;}location /msg {proxy_pass http://192.168.33.10:20005/; proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-real-ip $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;}location ~ \.php$ {fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;}
}
?4.配置php項目的打包編譯的自動化配置。
php項目如下:
5 。接著來配置jenkins自動化構建設置。
?前面已經接掃了,就不說了,可以參考前面
6.創建一個自由分格的前端項目,點擊保存:
參考前面的步驟,這里不在細說。
?
?
?在項目里面設置第三方訪問的webhook ,把前面jenkins生成的api token和地址填入下面的位置后保存。
點擊測試,看是否正常:
?
?設置構建shell 腳本:
rm -rf shop.tar.gz
#把當前目錄的所有文件打包成shop.tar.gz
tar zcvf shop.tar.gz shop
exit 0
?
?配置完成后,提交代碼:
?
?打開jenkins已經開始自動化構建了:
?
打開頁面,可以看到成功了。
?
當然可以采用docker容器化部署的方式來構建,其實本質都是一樣的。