register注冊(cè)中心 ,參考案例git倉(cāng)庫(kù):https://e.coding.net/adminv/gatewayworker/gatewayworker-register.git
docker build -t register .
docker run -it -p1238:1238 --name register register
gateway網(wǎng)關(guān)和business處理 ,參考案例git倉(cāng)庫(kù)
https://e.coding.net/adminv/gatewayworker/gatewayworker-business.git
docker build -t gateway .
暴露gateway 8282端口到宿主機(jī)8282, 暴露2000-2003(register聯(lián)系gateway進(jìn)程)
docker run -it -p 8282:8282 -p 2000-2003:2000-2003 --name=gateway gateway
可算找到問(wèn)題了,之前在沒(méi)有修改代碼的時(shí)候一直都跑不起來(lái),今天才發(fā)現(xiàn)原來(lái)在下載的demo 里這個(gè)東西
在安裝環(huán)境的文檔里說(shuō) 安裝 libevent擴(kuò)展(或者event擴(kuò)展)
可現(xiàn)在的docker 只安裝了 libevent 并沒(méi)有安裝 event
但是代碼里卻判斷安裝 event
現(xiàn)是在跑起來(lái)了
大佬還有一個(gè)問(wèn)題就是守護(hù)進(jìn)程運(yùn)行為什么不行,就是
php start.php start -d
加了這個(gè)-d 就是跑不起來(lái),不加就可以
這是為什么呢
因?yàn)?d,是后臺(tái)運(yùn)行,非阻塞控制臺(tái),所以容器執(zhí)行完就退出來(lái),不加d容器被阻塞才會(huì)一直運(yùn)行著,而且不加d還有輸出日志,docker logs 容器名 就能查看,
如果要php start.php start -d,那么就修改啟動(dòng)命令為 /bin/sh -c "php /app/start.php start -d ;/bin/sh "阻塞,或者使用/usr/bin/supervisord(需要安裝的)
如果只是 docker run 在后臺(tái)運(yùn)行,只要把--it去掉,換成 -d就行了例如: docker run -d -p 1238:1238 --name=register register
謝謝大佬,晚上回去試下