Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dive into BuildKit LLB with GO

po3rin
May 18, 2019

Dive into BuildKit LLB with GO

Go Conference Tokyo 2019 Spring の発表資料です。

H6 (S): Dive into Buildkit LLB with Go
Dockerに正式統合されたBuildKitをGoで扱う方法について発表します。

BuildKit は Goで実装されている為、Goのソースコードを読むことでGoを使ったDockerfile解析ツールや、独自のBuildKit LLB frontendを作成できます。

今回の発表ではGoでどのようにBuildkitが記述されているかをコードを追いながら、Goを使ったDockerfile解析ツールの作り方や、独自のコンテナイメージフロントエンドの作り方にも触れて行く為、Goでコンテナ技術を理解する大きな1歩になるでしょう。

po3rin

May 18, 2019
Tweet

More Decks by po3rin

Other Decks in Programming

Transcript

  1. Dive into BuildKit & LLB with Go Gopher Conference Tokyo

    2019 Spring April 12, 2019 @ po3rin
  2. QBHF CVJMELJUE CVJMEEFBNPO CVJMEDUM DPNNVOJDBUFT XJUICVJMELJUE H31$ buildctl & buildkitd

    Ὂ 5IFCVJMELJUEEBFNPOTVQQPSUTUXPXPSLFSCBDLFOET0$* SVOD BOEDPOUBJOFSE
  3. QBHF A foothold to read Go source code (1) Ὂ

    CVJMEDUMVTFT HJUIVCDPNVSGBWFDMJ QBDLBHF
  4. QBHF A foothold to read Go source code (2) Ὂ

    CVJMEDUMCVJMEDBMMT DMJFOU4PMWFNFUIPE8IBUJT UIFBSHVNFOUDBMMFEMMC 
  5. QBHF 7FSUFY &EHF 7FSUFY "UUIFDPSFPG#VJME,JUJTBOFXMPX MFWFMCVJMEEFpOJUJPOGPSNBUDBMMFE --# MPXMFWFMCVJMEFS  --#SFBMJ[FTQBSBMMFMFYFDVUJPOPG

    JOTUSVDUJPOTCZFYQSFTTJOH EFQFOEFODZBNPOHJOTUSVDUJPOTPG %PDLFSpMFBT%"( EJSFDUFEBDZDMJD HSBQI  Ὂ LLB
  6. QBHF Inside Dockerfile2LLB Ὂ %PDLFSpMF %PDLFSpMF"45 #VJMEBCMF4UBHFT --# 'JSTUPG"MM %PDLFSpMF1BSTFS

    HFOFSBUFT%PDLFSpMF"45'SPN UIFSF JUDSFBUFT#--UISPVHI WBSJPVTQSPDFTTFT
  7. QBHF 'SPOUFOE --# %PDLFSpMF HSQD #VJMELJUE CVJMEEFBNPO FYQPSU %PDLFSJNBHF DPOWFSU

    0SJHJOBM'SPOUFOE *OPUIFSXPSET JUJTQPTTJCMFUP JNQMFNFOUBOEQVCMJTIUIF PSJHJOBMGSPOUFOE
  8. QBHF Easy way to Create Custom Frontend Ὂ $SFBUFDPOWFSTJPOQSPDFTTGSPN BSCJUSBSZGPSNBUUP--#

    6TF(BUFXBZ"1*QSPWJEFECZ CVJMELJU #JOBSZJ[FUIFQSPDFTTBOEQVCMJTIJU BTB%PDLFSJNBHF 1 2 3
  9. Dive into BuildKit & LLB with Go Gopher Conference Tokyo

    2019 Spring April 12, 2019 @ po3rin
  10. QBHF Use BuildKit Gateway API (4) Ὂ 4PMWF $MJFOU FYCVJMEDUM

    $POUPMMFS (BUFXBZ"1* 'SPOUFOE 3VOT*OEPDLFSDPOUBJOFS