$2=-f
$3=xxx.conf
$@=mysqld -f xxx.conf

可以看到, 當執行 docker-entrypoint.sh腳本的時候后面加了 -x形式的參數之后, $@的值發生的改變, 在原有$@值的基礎之上, 在前面又預添加了 mysqld 命令

exec $@

幾乎在每個docker-entrypoint.sh腳本的最后一行, 執行的都是 exec $@命令

這個命令的意義在于你已經為你的鏡像預想到了應該有的調用情況, 當實際使用鏡像的人執行了你沒有預料到的可執行命令時, 將會走到腳本的這最后一行, 去執行用戶新的可執行命令

情況判斷

上面直接說了腳本的最后一行, 在之前的腳本中, 需要充分的去考慮你自己的腳本可能會被調用的情況. 還是拿 MySQL 官方的 dockerfile 來說, 他判斷以下情況:

開頭是 – , 認為是參數的情況
開頭是 mysqld, 且用戶 id 為0 (root 用戶) 的情況
開頭是 mysqld 的情況
判斷完自己應用的所有調用形態之后, 最后應該加上exec $@ 命令兜底

${mysql[@]}

Shell 中的數組, 直接執行 ${mysql[@]} 會把這個數組當做可執行程序來執行

mysql=( mysql --protocol=socket -uroot -hlocalhost --socket=${SOCKET} )
echo ${mysql[1]}
-- output: mysql
echo ${mysql[2]}
--output: --protocol=socket
echo ${mysql[3]}
--output: -uroot
echo ${mysql[4]}
--output: -hlocalhost
echo ${mysql[@]}
--output: mysql --protocol=socket -uroot -hlocalhost --socket=

exec gosu mysql $BASH_SOURCE $@

這里的 gosu 命令, 是 Linux 中 sudo 命令的輕量級”替代品”

gosu 是一個 golang 語言開發的工具, 用來取代 shell 中的 sudo 命令. su 和 sudo 命令有一些缺陷, 主要是會引起不確定的 TTY, 對信號量的轉發也存在問題. 如果僅僅為了使用特定的用戶運行程序, 使用 su 或 sudo 顯得太重了, 為此 gosu 應運而生.

gosu 直接借用了 libcontainer 在容器中啟動應用程序的原理, 使用 /etc/passwd 處理應用程序. gosu 首先找出指定的用戶或用戶組, 然后切換到該用戶或用戶組. 接下來, 使用 exec 啟動應用程序. 到此為止, gosu 完成了它的工作, 不會參與到應用程序后面的聲明周期中. 使用這種方式避免了 gosu 處理 TTY 和轉發信號量的問題, 把這兩個工作直接交給了應用程序去完成

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持三五互聯

更多關于云服務器域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » docker entrypoint入口文件詳解

登錄

找回密碼

注冊

主站蜘蛛池模板: 熟妇人妻无码中文字幕老熟妇| 常宁市| 国产一区二区三区无遮挡| 国产又色又爽又黄的网站免费| 体态丰腴的微胖熟女的特征 | 亚洲国产精品一区二区第一页| 一区二区三区国产偷拍| 一道本AV免费不卡播放| 国内自拍偷拍一区二区三区| 成人午夜在线观看刺激| 国产精品伦理一区二区三| 亚洲午夜无码av毛片久久| 久久精品国产99久久丝袜| 国语精品自产拍在线观看网站| 国产999久久高清免费观看| 国产成人亚洲无码淙合青草| 国产色悠悠视频在线观看| 国产精品SM捆绑调教视频| 国产线播放免费人成视频播放| 国99久9在线 | 免费| 少妇被无套内谢免费看| 久久国产精品免费一区| 国产91精品一区二区亚洲| 实拍女处破www免费看| 四虎精品视频永久免费| 日韩精品久久一区二区三| 日本丰满白嫩大屁股ass| 欧美和黑人xxxx猛交视频| 日韩免费无码视频一区二区三区| 国产一区二区视频啪啪视频 | 国产成人精品无码一区二区老年人| bt天堂新版中文在线| 红桥区| 日本一码二码三码的区分| 丰满爆乳一区二区三区| 四虎国产精品免费久久久| 国产成AV人片久青草影院| 国精一二二产品无人区免费应用| 人妻互换一二三区激情视频| 日本视频一区二区三区1| 国产精品国产三级国产试看|