團隊有集成測試的需求,集成測試需要依賴(lài)一些中間件,比如mysql,rabbitmq。每個(gè)研發(fā)人員有對自己開(kāi)發(fā)的那部分代碼進(jìn)行測試編寫(xiě)和運行檢測的需求。
為了不互相影響,可以選擇在研發(fā)本地搭建自己的依賴(lài)環(huán)境,我們希望這些環(huán)境搭建要容易、快速,且方便清理。
而docker,則能很好實(shí)現上述訴求。
但僅僅這樣還不夠,我們還面臨著(zhù)以下一些問(wèn)題
總結來(lái)看,使用docker可以幫助我們快速的搭建項目依賴(lài)環(huán)境,但是本地化的docker依賴(lài),依然讓我們的代碼在測試時(shí),不夠純粹,對其各個(gè)運行環(huán)境,都有有本地docker安裝的要求。
而實(shí)際上,docker本身提供了遠程鏈接模式,則使得我們可以中心化的部署docker,然后集成測試代碼以tcp鏈接的方式,使用docker server,進(jìn)行依賴(lài)中間件搭建,測試。
以centos 為例7.6為例,講解如何將一個(gè)docker配置成可以遠程鏈接。
在/etc/docker/daemon.json
中開(kāi)啟遠程鏈接端口
{"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]}
添加文件/etc/systemd/system/docker.service.d/override.conf
,注意上述路徑不存在則手動(dòng)創(chuàng )建
[Service] ExecStart= ExecStart=/usr/bin/dockerd
systemctl daemon-reload
systemctl restart docker.service
在部署好遠程docker后,隨之而來(lái)的問(wèn)題是
幸運的是,框架,幫我們很好的解決了上述問(wèn)題。
更進(jìn)一步的,游戲公司提供了Testcontainers 同spring boot整合的測試框架https://github.com/Playtika/testcontainers-spring-boot
,使得Spring Boot或Spring cloud生態(tài)的應用在編寫(xiě)集成測試時(shí),更方便
使用Testcontainers 或 playtika的testcontainers-spring-boot進(jìn)行遠程docker鏈接時(shí),都不需要在本地安裝docker客戶(hù)端。但需要進(jìn)行相關(guān)環(huán)境變量配置,使得代碼可以知道遠程docker的地址。該地址的配置有如下幾種方式
DOCKER_HOST=tcp://remote_docker_server_ip:2375
System.setProperty("DOCKER_HOST","tcp://remote_docker_server_ip:2375")
指定環(huán)境變量上述測試代碼不需要安裝docker 客戶(hù)端。但倘若我們需要以命令行的方式,管理docker,則可以安裝一些docker客戶(hù)端,來(lái)跟遠程docker通信。當然上述的Testcontainers 相當于客戶(hù)端的一種。
不同操作系統的客戶(hù)端程序安裝方式見(jiàn):
參考資料
到此這篇關(guān)于使用遠程Docker進(jìn)行集成測試的文章就介紹到這了,更多相關(guān)Docker集成測試內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站