您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)如何在tc上安裝buildkit.tcz、vscode.tcz、打通vscodeonline與openfaas模擬cloudbase打造碎片化編程開發(fā)部署環(huán)境,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
首先,從下載buildkit最新版,它跟docker,openfaas,containerd一樣,都是清一色的go binary,采用《一種混合包管理和容器管理方案,及在tinycorelinux上安裝containerd和openfaas》同樣的tcz構(gòu)建方法,將下載到的v0.8.1的buildkit包的所有bin放到一個squashfs-root/usr/local/bin中(不用加chmod + x因為下載包里自帶),然后新建一個squashfs-root/usr/local/etc/init.d/,里面放二個chmod +x ./buildkit ./makedockerconfig:
這是makedockerconfig中的內(nèi)容,buildkit+containerd代替了整個docker作構(gòu)建工具和運行時(containerd不能build,ctr image build沒有這個命令),但配置文件用的還是對接dockerhub的那一套。
read -p "enter your dockerhub username:" DOCKERHUB_USERNAME read -p "enter your dockerhub personal access token:" DOCKERHUB_TOKEN rm -rf ~/.docker/config.json mkdir -p ~/.docker/ cat > ~/.docker/config.json << EOF { "auths": { "https://index.docker.io/v1/": { "auth": "$(echo -n $DOCKERHUB_USERNAME:$DOCKERHUB_TOKENT | base64)" } } } EOF cp -f ~/docker/config.json /var/lib/faasd/config.json
解釋一下,所謂access token就是一種能代替密碼,實現(xiàn)有限權(quán)限子賬戶的機制。dockerhub后臺可以得到。由于tc11是沒有base64的,這個工具在coreutils.tcz中。稍后建成的buildkit.tcz將依賴一條coreutils.tcz
這是buildkit中的內(nèi)容,/usr/local/bin/buildkitd &,(你可以按上文添加額外參數(shù)設(shè)置為runc或containerd后端,默認為runc),為應(yīng)用包在/init.d/寫隨著系統(tǒng)啟動的啟動文件,特別要注意,在命令后必要處加&,否則前臺命令會block啟動流程。在前文中,faasd和containerd都是這樣處理的。
寫好dep(依賴coreutils和containerd,attr.tcz:buildkit使用xattr相關(guān)命令)和md5.txt,打包成tcz,安裝在tc11中,現(xiàn)在來測試一下,建立一個測試倉庫并:sudo buildctl build --frontend dockerfile.v0 --local context=./ --local dockerfile=./ --output type=image,name=docker.io/minlearn/dafsdf:latest,出錯了:
...... => ERROR exporting to image 0.1s error: failed to solve: rpc error: code = Unknown desc = mount callback failed on /tmp/containerd-mount267804283: mount callback failed on /tmp/containerd-mount706848158: failed to write compressed diff: failed to create diff tar stream: failed to get xattr for /tmp/containerd-mount267804283/bin: operation not supported
這是因為我在tc11中使用的是ext3,構(gòu)建tc11用的config-5.4.3-tinycore64中并沒有開啟CONFIG_EXT3_FS,也沒有開啟CONFIG_EXT3_FS_XATTR,導(dǎo)致buildkit調(diào)用xattr相關(guān)命令時不成功。因此重新編譯內(nèi)核。注意要sudo make install,不能僅sudo make在arch/boot/x86/compressed下得到vmlinux,而要在install過后的/boot下得到vmlinuz。否則雖然編譯成功,但kernel image運行不了,會提示invalid magic number
安裝好kernel image,重啟,問題解決。你就可以實現(xiàn)在local容器中免registry commit了。最后在命令中按是否需要上傳到dockerhub,加個push=true一下。
當(dāng)然這一切現(xiàn)在只是命令行方式進行,并沒有上升到整合為openfaas 8080/ui那個后臺的界面功能。但作為上文提到的方案2,接下來的vscode mount就好多了。
我們下載的是cdr的code-server-3.8.0-amd64,按 《panel.sh:一個nginx+docker的云函和在線IDE面板,發(fā)明你自己的paas(2)》的路子將所有文件解壓到squashfs-root的/usr/local/lib/中。然后新建squashfs-root/usr/local/bin,squashfs-root/usr/local/etc/init.d/并依次:
cd squashfs-root/usr/local/bin sudo ln -s ../lib/code-server-3.8.0/bin/code-server code-server sudo chmod +x ./code-server
cd squashfs-root/usr/local/etc/init.d/ sudo touch vscodeonline makevscodeconfig sudo chmod +x ./vscodeonline makevscodeconfig
makevscodeconfig里面放:
read -p "enter your desired access token(plain strings ok):" VSCODE_TOKEN rm -rf ~/.config/code-server/config.yaml mkdir -p ~/.config/code-server/ cat > ~/.config/code-server/config.yaml << EOF bind-addr: 127.0.0.1:5000 auth: password password: "$(echo $VSCODE_TOKEN)" cert: false EOF mkdir -p /home/tc/.config/code-server/ cp -f /root/.config/code-server/config.yaml /home/tc/.config/code-server/config.yaml
然后是啟動vscodeonline的:/usr/local/bin/code-server --config /root/.config/code-server/config.yaml &
直接打包,直接md5,沒有dep引用。 --config ~/.config/code-server/config.yaml是需要的,因為code-server似乎存在一個bug,它啟動的時候會在~.config下找配置文件,而不是~/.config少了一個/(多了一個/?沒仔細看),且它識別不了~,找不到會自動在8080啟動vscode服務(wù),導(dǎo)致發(fā)生異常,故強行指定/root/.config/。
然后你就可以按https://code.visualstudio.com/docs/remote/containers-advanced嘗試vscode.tcz + mount方案了
未來我們將code-server中綁定的nodejs發(fā)行版本獨立出來用獨立tcz代替,這才符合tcz一個軟件一個包的適當(dāng)粒度劃分。
關(guān)于“如何在tc上安裝buildkit.tcz、vscode.tcz、打通vscodeonline與openfaas模擬cloudbase打造碎片化編程開發(fā)部署環(huán)境”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。