🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
jenkins搭建环境背景:<br> 1:Centos 7.9 2:Docker版本:23.0.5 3:Docker-compose版本: version v2.19.0(对应yml版本是3) 4:docker-compose jk搭建yml脚本(本地已经在创建Docker根目录创建 jenkins_home目录) 5:因为使用的是阿里云的服务器,以下yml该开的端口必须要先放开,入口开放即可 ``` version: '3' services: # jk自动化容器 jenkins: image: jenkins/jenkins:lts user: root # 为了避免一些权限问题 在这我使用了root ports: - 9999:8080 - 50000:50000 volumes: # 卷挂载路径 - ./wwwroot:/wwwroot #程序运行目录 - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /etc/docker/daemon.json:/etc/docker/daemon.json - ./jenkins_home/:/var/jenkins_home # 这是我们一开始创建的目录挂载到容器内的jenkins_home目录 environment: - TZ=Asia/Shanghai restart: always # mysql容器 mysql: container_name: lnmp_mysql image: mysql:5.7 restart: always ports: - 33061:3306 volumes: - ./mysql/my.cnf:/etc/mysql/my.cnf - ./mysql/data:/var/lib/mysql #挂载数据目录到本地 - ./mysql/log:/var/log/mysql command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --max_allowed_packet=256M --default-authentication-plugin=mysql_native_password --sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: '123456' MYSQL_DATABASE: 'docker_bjl_mysql' MYSQL_USER: 'docker_bjl_mysql' MYSQL_PASSWORD: '123456' # nginx容器 nginx: container_name: lnmp_nginx image: nginx ports: - 8080:80 - 4000:443 working_dir: /wwwroot volumes_from: - php7.4 #继承phpfpm挂载目录 volumes: - ./html:/usr/share/nginx/html - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/conf.d:/etc/nginx/conf.d - ./nginx/logs:/var/log/nginx depends_on: - php7.4 restart: always logging: driver: 'json-file' options: max-size: '10g' # php7.4容器 php7.4: container_name: lnmp_php74 build: context: ./php/php74 # dockerfile文件路径 dockerfile: Dockerfile # 指定dockerfile文件名称 expose: - 9000 ports: - "9000:9000" links: - mysql:mysql environment: TZ: Asia/Shanghai volumes: - ./wwwroot:/wwwroot #程序运行目录 - ./php/php74/php.ini:/usr/local/etc/php/php74/php.ini:rw restart: always logging: driver: 'json-file' options: max-size: '10g' ``` 4: 上述改完以后,需要在容器外部找到 /var/run/docker.sock这个文件,执行两个命令,确保在jenkins容器中可以使用docker命令,不然使用不了此docker命令: 4.1:修改jenkins所在服务器中的docker核心文件/var/run/docker.sock文件的权限,修改文件为root用户下的root组的文件,命令```chown root:root docker.sock```,如图所示: ![](https://img.kancloud.cn/c0/30/c0300e9d38576faa5831959b9fca214a_754x290.png) 4.2:然后修改读写权限:```chmod o+rw docker.sock```,如图所示: ![](https://img.kancloud.cn/b8/fc/b8fccb0fc10167467403217416986499_742x196.png) 4.3:(参考链接:https://blog.csdn.net/qq_18153681/article/details/126881105)此处还需要注意个事项,就是jenkins容器如果在执行启动成功后,我们进入容器,查询docker命令是否可以执行是:```docker version```,可能会缺少一个叫做三方库:libltdl.so.7,我们可以顺便在容器内安装上即可,命令为:```apt-get update && apt-get install -y libltdl7```,安装上后,再次在jenkins容器内执行命令:```docker version```就可以看到相应版本信息,如图所示: ![](https://img.kancloud.cn/c5/42/c5427d60ca1e82e227456b1550ba62cd_501x365.png) 5:直接运行即可