久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何在tc上安裝buildkit.tcz、vscode.tcz、打通vscodeonline與openfaas模擬cloudbase打造碎片化編程開發(fā)部署環(huán)境

157次閱讀
沒有評論

共計 3956 個字符,預計需要花費 10 分鐘才能閱讀完成。

行業(yè)資訊    
服務器    
云計算    
如何在 tc 上安裝 buildkit.tcz、vscode.tcz、打通 vscodeonline 與 openfaas 模擬 cloudbase 打造碎片化編程開發(fā)部署環(huán)境

如何在 tc 上安裝 buildkit.tcz、vscode.tcz、打通 vscodeonline 與 openfaas 模擬 cloudbase 打造碎片化編程開發(fā)部署環(huán)境
發(fā)布時間:2021-11-25 11:53:19
來源:丸趣 TV
閱讀:177
作者:小新
欄目:云計算

這篇文章將為大家詳細講解有關如何在 tc 上安裝 buildkit.tcz、vscode.tcz、打通 vscodeonline 與 openfaas 模擬 cloudbase 打造碎片化編程開發(fā)部署環(huán)境,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

buildkit.tcz+instant commit

首先,從下載 buildkit 最新版,它跟 docker,openfaas,containerd 一樣,都是清一色的 go binary,采用《一種混合包管理和容器管理方案,及在 tinycorelinux 上安裝 containerd 和 openfaas》同樣的 tcz 構建方法,將下載到的 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 作構建工具和運行時 (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) 
 }
 }
cp -f ~/docker/config.json /var/lib/faasd/config.json

解釋一下,所謂 access token 就是一種能代替密碼,實現(xiàn)有限權限子賬戶的機制。dockerhub 后臺可以得到。由于 tc11 是沒有 base64 的,這個工具在 coreutils.tcz 中。稍后建成的 buildkit.tcz 將依賴一條 coreutils.tcz

這是 buildkit 中的內(nèi)容,/usr/local/bin/buildkitd,(你可以按上文添加額外參數(shù)設置為 runc 或 containerd 后端,默認為 runc),為應用包在 /init.d/ 寫隨著系統(tǒng)啟動的啟動文件,特別要注意,在命令后必要處加,否則前臺命令會 block 啟動流程。在前文中,faasd 和 containerd 都是這樣處理的。

寫好 dep(依賴 coreutils 和 containerd,attr.tcz:buildkit 使用 xattr 相關命令)和 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,構建 tc11 用的 config-5.4.3-tinycore64 中并沒有開啟 CONFIG_EXT3_FS, 也沒有開啟 CONFIG_EXT3_FS_XATTR,導致 buildkit 調(diào)用 xattr 相關命令時不成功。因此重新編譯內(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 一下。

當然這一切現(xiàn)在只是命令行方式進行,并沒有上升到整合為 openfaas 8080/ui 那個后臺的界面功能。但作為上文提到的方案 2,接下來的 vscode mount 就好多了。

vscode.tcz + 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
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 服務,導致發(fā)生異常,故強行指定 /root/.config/。

然后你就可以按 https://code.visualstudio.com/docs/remote/containers-advanced 嘗試 vscode.tcz + mount 方案了

未來我們將 code-server 中綁定的 nodejs 發(fā)行版本獨立出來用獨立 tcz 代替,這才符合 tcz 一個軟件一個包的適當粒度劃分。

關于“如何在 tc 上安裝 buildkit.tcz、vscode.tcz、打通 vscodeonline 與 openfaas 模擬 cloudbase 打造碎片化編程開發(fā)部署環(huán)境”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計3956字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 闵行区| 隆回县| 郯城县| 常山县| 宁陕县| 平乐县| 涞水县| 阿拉善右旗| 万荣县| 深圳市| 南安市| 石楼县| 新龙县| 台北县| 吕梁市| 莱州市| 鄂尔多斯市| 平山县| 新晃| 吉安县| 武隆县| 桃江县| 民和| 定远县| 新宁县| 雷波县| 文昌市| 获嘉县| 娱乐| 汾西县| 铜山县| 台东市| 客服| 新民市| 仁化县| 绥中县| 加查县| 新兴县| 慈利县| 晴隆县| 黑龙江省|