利用 docker,git 搭建自动编译部署测试环境,每次 commit 后,能在测试服务器上自动编译并部署部署
ci_agent
上搭建测试环境ci_server
上创建代码远端仓库 test_repo
注意:
ci_agent
和 ci_server
都是docker container
配置ci_agent
测试环境:
ci_agent
)后能快速的搭建测试环境而不需要重新搭建创建ci_server
container
ci_server
,需要将ci_server
的端口22 映射到宿主机配置repo
test_repo
目录下执行 git init --bare
在开发环境代码仓库中添加一个远端仓库,并将项目的代码推送到test_repo
在 test_src
目录下执行git clone $test_repo
配置自动编译部署脚本,在远端仓库中添加 post-recieve hook,hook 包括3部分
test_src
目录注意:
在 hook 中,GIT_DIR 的值被设置为.
,因此在hook中的脚步使用 git 命令前需要删除这个变量,或者将它设置为你需要的的值
container 中安装 ssh:
$ yum install openssh-server
$ echo root:sshpass | chpasswd
$ sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
$ /etc/init.d/sshd start
将ci_server
的ssh端口(22)映射的宿主机时,一般无法映射到相同的22端口上,因此开发机的本地仓库添加ci_server
远端仓库时,需要指定端口号,方法如下: ssh://git@github.com:22/asdf/asdf.git