寶塔面板是一款非常好用的服務(wù)器管理面板,我們有些項(xiàng)目中為了方便客戶操作管理服務(wù)器,會(huì)給服務(wù)器裝這個(gè)面板,常規(guī)情況下寶塔面板安裝在服務(wù)器中會(huì)自動(dòng)啟動(dòng),但在DOCKER容器中會(huì)因?yàn)閽燧d本地目錄的原因有時(shí)候無法自啟成功。
啟動(dòng)容器后通過docer exec 命令進(jìn)入寶塔所在容器后,手動(dòng)重啟寶塔的服務(wù)后可以運(yùn)行,但是web服務(wù)器又無法運(yùn)行,需要登錄寶塔面板后再次點(diǎn)擊啟動(dòng)才可以,這樣如果服務(wù)器斷電或非計(jì)劃關(guān)機(jī)后,web和對(duì)應(yīng)的服務(wù)器就沒法自動(dòng)重啟,安裝寶塔面板就沒有實(shí)際性意義了。
我們可以創(chuàng)建一個(gè)腳本文件,在docer的容器在啟動(dòng)的時(shí)候,執(zhí)行一次寶塔重啟、web服務(wù)器重啟、mysql重啟、如果還有其他的需要可以一并添加,我這里使用通的web服務(wù)器是nginx、mysql、php,所以我在系統(tǒng)根目錄創(chuàng)建了stat.sh的文件,里面的內(nèi)容如下。
/usr/bin/bt restart;
/etc/init.d/nginx restart;
/etc/init.d/php-fpm-73 restart;
/etc/init.d/mysqld restart;
但是另一個(gè)問題出現(xiàn)了,docker容器的啟動(dòng)很快,在啟動(dòng)的時(shí)候掛載的文件還沒準(zhǔn)備完成,導(dǎo)致命令啟動(dòng)失敗,所以在啟動(dòng)后執(zhí)行這個(gè)腳本的時(shí)候需要加一條延遲的命令,
sleep 5; 意思是在啟動(dòng)后5秒在往下執(zhí)行命令。
這樣容器在啟動(dòng)后,docker就回自動(dòng)對(duì)腳本中涉及到的服務(wù)進(jìn)行重啟了。