当前位置: 首页 > 后端技术 > PHP

使用Jenkins进行持续部署(PHP代码)

时间:2023-03-29 16:23:15 PHP

在docker项目中单机搭建jenkins,使用gitlab的webhook持续部署项目。请注意,该项目是一个没有构建和测试部分的php项目。至于测试部分,我们将在下一节进行。这次只是一个提交和部署的功能,今年不讲使用docker进行交付的方式项目结构说明其中data/jenkins为jenkins存放目录CI-server.yml为jenkisn启动结构版本:“3.0”服务:詹金斯:图像:詹金斯:最新环境:DOCKER_URL:''卷:-“/etc/localtime:/etc/localtime:ro”#Backupdata-“./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只是关闭了安全端口,使用了一些在线配置文件。版本:'3.2'服务:nginx:图像:nginx:1.13.3端口:-“80:80”链接:-“php-fpm:php-fpm”卷:#website目录-./app:/var/www/html-./dockerfiles/nginx/conf.d:/etc/nginx/conf.d:ro#log文件-./logs/nginx:/var/log/nginx-/etc/localtime:/etc/localtime:rorestart:always命令:nginx-g'daemonoff;'##mysqldbmysql-db:image:mysql:5.7volumes:-./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:rorestart:always环境:MYSQL_ROOT_PASSWORD:zhaojunMYSQL_DATABASE:package_v1MYSQL_USER:zhaojunMYSQL_PASSWORD:zhaojunredis-db:build:./dockerfiles/redis重新启动:始终卷:-./data/redis:/data-/etc/localtime:/etc/localtime:rophp-fpm:构建:./dockerfiles/php/重新启动:始终环境:TP_APP_DEBUG:0APP_DEBUG:1APP_DOCKER_DEV:0MYSQL_HOST:mysql-dbMYSQL_DATABASE:zushouyou_v1MYSQL_USER:rootMYSQL_PASSWORD:zhaojunMYSQL_PORT:3306volumes:#网站目录-./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#Mountsitelog-./logs/php-fpm:/var/log/php-fpm:rwdepends_on:-mysql-db-redis-db链接:-mysql-db:mysql-db-redis-db:redis-db命令:php-fpm##jobtakser:image:node:6.9环境:MYSQL_HOST:mysql-dbSERVER_HOST:服务器卷:-./app/node-task:/task-/etc/localtime:/etc/localtime:ro链接:-mysql-db:mysql-db-redis-db:redis-db-nginx:serverworking_dir:/taskcommand:/bin/bash-c"npminstall&&node./index.js"##composer构建工具composer:image:composer:1.4.2volumes:#websitedirectory-./app:/app:rwworking_dir:/app/webroot命令:composerinstall##前端工具bower:image:digitallyseamless/nodejs-bower-gruntvolumes:-./app:/app:rwworking_dir:/app/webroot命令:bowerinstallStep1,单机服务器部署jenkins和docker编排的项目这里我们预先设置服务器命令为:zushouyouserver需要做的1.优化2.安装gitdocker3.cloneprojectdowngitcloneproject..Step2,克隆项目后启动jenkinsdocker-compose-fCI-server.ymlup-d如果发现jenkins容器挂了up,查看日志并添加权限,重启容器即可Step3,配置Jenkins在CI-server.yml中我们映射了8999->8080端口,这样我们只要访问这个端口就可以访问jenkins,如果服务被拒绝,请检查服务器供应商的安全组、iptables规则、firewalld和其他防火墙,然后我们可以访问欢迎屏幕。查看初始密码,这里我们的容器id是f8dockerexec-itf8bash-c'cat/var/jenkins_home/secrets/initialAdminPassword'60e74c836b25402581cb0daae95b65a4第一次进入需要先安装插件,这里我们选择手动选择一些插件,因为如果我们只是集成,我们不需要很多插件。我不会截图来说明插件选择。buildtools和pipline中的插件可以先取消。需要的插件如下。安装完成后,配置用户名和账号。最后还需要安装一些第三方插件。同理,安装完成后,最好重启一下,以免出现问题。Step4,配置Job系统设置,先配置SSHServer,先配置GitSSH,让宿主机通过ssh1拉取。生成rsa2。添加到gitwebsite3的公钥中,如果能直接pull,说明OK。4、配置jenkins的服务器,配置SSH主机。generic-webhook-trigger/invoke?token=fuck这样就完成了一个自动化的部署过程。请记住,本文只是让我们了解一些简单的原理,包括构建和测试,最后是ci。如果我们不实施之前的工作,那没有多大意义。我们刚刚制作了一个自动化脚本。