前言:最近拿到一台linux服务器,需要搭建docker + nginx + tomcat + gitlib + jenkins + mssql环境,在博客做个记录,方便自己随时查找方便,同时希望对其他同学有些帮助。
服务器选择centos8.0 64位 ,基于容器docker(Docker version 19.03.8, build afacb8b)
前端:nginx 1.17.9
后端:tomcat 8.5.53
代码储存:gitlab
自动发布:jenkins
共有三个环境,分为8个容器(6个开发容器 + 2个辅助容器)
本地开发环境 本地下载安装mssql
frontend | backend | mssql | |
---|---|---|---|
测试环境 | project-frontend-nginx1.85-dev | project-backend-tomcat1.85-dev | project-mssql2017-dev |
生产环境 | project-frontend-nginx1.85-prod | project-backend-tomcat1.85-prod | project-mssql2017-prod |
gitlab | project-gitlab1.2.3 | ||
jenkins | project-jenkens1.2.3 |
容器命名规则 => 项目名称+项目类型+启动服务器(+版本号) + 开发环境
端口管理(开放自定义端口,需要到阿里云配置,不然不能访问)
frontend | backend | mssql | |
---|---|---|---|
测试环境 | 9099 | 8088 | 14330 |
生产环境 | 9090 | 8080 | 1433 |
gitlab | 2280 | ||
jenkins | 8089 |
2020-4-8更新
由于配置不高,jenkins构建的时候资源不够,导致构建失败,所以调整mssql容器,太占资源了。
调整如下:project-mssql2017-dev 和 project-mssql2017-prod 合并成 project-mssql2017
在project-mssql2017中建两个数据库,分别代表测试库(projectdb
)和生产库(project
)。
端口统一成:1433, 关闭14330端口
结语:
为啥没有一个容器,放dev和prod两个项目,在当初的设想中,两个项目交错在一起,感觉很麻烦,一个容器出错,导致全部项目都访问不了,所以就分开成两个容器部署。例如:dev坏了,prod还能用。
我也不清楚这种模式对不对。自己摸索着弄。由于时间仓促,东西写的不是很详细,主要想表达出这种思想。