博客
关于我
一套基础自动化部署搭建过程
阅读量:331 次
发布时间:2019-03-03

本文共 1749 字,大约阅读时间需要 5 分钟。

公司技术团队从零开始搭建开发环境的故事

作为一家初创公司,技术团队从零开始搭建开发环境的经历一定充满挑战。经过两天的奋战,我们最终成功搭建了必要的工具,这对团队的后续开发工作起到了至关重要的作用。本文将记录我们从环境搭建到工具配置的全过程,希望能为有类似需求的开发者提供一些参考。

资源与选择

在资源匮乏的情况下,我们只有一台CentOS服务器。为了避免使用传统的yum安装带来的管理复杂性,我们选择了Docker。Docker的容器化技术使得环境一致性和维护变得更加简单。

测试环境搭建

为了快速搭建一个包含Nginx、PHP-FPM、MySQL等常用服务的测试环境,我们选择了laradock。laradock提供了丰富的预制镜像和配置,适合快速部署开发环境。通过以下命令,我们可以快速启动所需服务:

# 克隆laradock仓库git clone https://github.com/laradock/laradock.git# 复制环境配置cp env-example .env# 启动服务docker-compose up -d nginx php-fpm mysql redis# 进入工作区docker-compose exec workspace bash

Nginx的配置文件可以找到 /laradock/nginx/sites/ 目录下。通过 docker-compose exec nginx -s reload 命令可以动态重启Nginx服务。

GitLab部署

在环境搭建完成后,我们需要一个代码管理平台。选择GitLab的原因是它提供了强大的代码托管功能。通过以下Docker命令,我们可以快速启动一个GitLab服务器:

# 启动GitLabdocker run -d \    -p 443:443 -p 8080:80 -p 222:22 \    --name gitlab \    --restart always \    -v /home/gitlab/config:/etc/gitlab \    -v /home/gitlab/logs:/var/log/gitlab \    -v /home/gitlab/data:/var/opt/gitlab \    gitlab/gitlab-ce# 访问GitLab需要几秒钟

启动成功后,可以通过宿主机的域名访问GitLab界面。通过修改配置文件,我们可以将SSH端口设置为222,同时域名设置为外部访问地址。

Jenkins配置

为了实现自动化部署,我们选择了Jenkins。通过以下命令,我们可以快速启动一个Jenkins服务器:

# 启动Jenkinsdocker run -d \    -p 8181:8080 -p 50000:50000 \    --name myjenkins \    -v /home/jenkins/:/var/jenkins_home \    jenkins/jenkins

Jenkins容器启动后会自动生成初始化密码,可以通过 docker logs 查看密码,或者通过 /home/jenkins/secrets/initialAdminPassword 文件读取。

插件安装与配置

Jenkins安装完成后,我们需要安装一些必需插件。推荐安装的插件包括:

  • GitLab插件(支持GitLab代码托管)
  • Node.js插件(支持前端开发)
  • SSH插件(支持代码推送)

通过 Jenkins 管理界面进入系统设置,配置工具安装和插件管理。我们还需要配置JDK、Git、Node.js等开发工具,选择自动安装方式即可。

创建并配置项目

新建一个自由风格的项目,选择Git仓库地址并添加Git用户。通过配置构建触发器,选择GitLab作为代码源。构建过程中,可以通过SSH传输代码包,或者将项目打包后上传到服务器。

总结

从零开始搭建开发环境的过程虽然充满挑战,但通过Docker和laradock的帮助,我们成功建立了一套完整的测试环境。GitLab和Jenkins的集成使得代码管理和自动化部署变得更加高效。希望这个过程能为其他团队提供一些参考。

转载地址:http://tnkq.baihongyu.com/

你可能感兴趣的文章
PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
查看>>
PostgreSQL9.1 双机部署配置(主备数据同步)
查看>>
Qt开发——简易网络浏览器(一)
查看>>
Qt开发——简易成绩登记系统
查看>>
Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
查看>>
Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
查看>>
SpringBoot中集成XXL-JOB分布式任务调度平台,轻量级、低侵入实现定时任务
查看>>
Postgresql中的表结构和数据同步/数据传输到Mysql
查看>>
Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存在
查看>>
SpringBoot中集成websocket后WebSocketServer中注入mapper为空
查看>>
postgreSQL入门命令
查看>>
PostgreSQL删除数据库报"ERROR: There is 1 other session using the database."
查看>>
Qt开发——爱情公寓人事管理系统
查看>>
Qt开发——文件下载软件
查看>>
PostgreSQL和Oracle两种数据库有啥区别?如何选择?
查看>>
Qt开发——多线程网络时间服务器端
查看>>
Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入
查看>>
PostgreSQL在何处处理 sql查询之四
查看>>
postgresql基本使用
查看>>
PostgreSQL学习总结(10)—— PostgreSQL 数据库体系架构
查看>>