Docker ãŽį´šäģã¨æĻčĻ
DockerãĢã¯ã¸ãŠãæĨãĻãã ãã! ããŽå Ĩéãģããˇã§ãŗã§ã¯ãããŗãŗããã¨ã¯äŊããã¨ããåēæŦããå§ããžãã ãããããããŧãĢãĢéįēãĢããããŗãŗãããŽåã¨ãDocker ãŽä¸éŖãŽãĩãŧããšããŠãŽãããĢããšãĻããžã¨ããããåĻãŗãčĻããã¨ãã§ããžãã ä¸č˛Ģæ§ãŽããéįēį°åĸãį°ĄåãĒįĩąåããšããã¤ãĄãŧã¸ãŽãģããĨãĒããŖäŋčˇã¨ããĢããŽčŋ éåãĢåŊšįĢã¤ããŧãĢã襨į¤ēãããžãã
ããŽãģããˇã§ãŗã¯ãDockerãæäžããããšãĻãŽããŽãŽåēį¯ãĒæĻčĻãæäžãããã¨ãįŽįã¨ããĻãããæčĄįãĒããĻããŧãĢã¯č§ĻããĻããĒããã¨ãĢæŗ¨æããĻãã ããã Docker ãåããĻäŊŋį¨ãããĻãŧãļãŧã§ããįĩé¨čąå¯ãĒãĻãŧãļãŧã§ããčǰãĢã¨ãŖãĻãæ°ããããŽããããžãã
Â
åã
ãããĢãĄã¯ãį§ãŽååã¯ãã¤ãąãĢãģãĸãŧãĻãŖãŗã§ãããDockerãŽããããããŧãĒãŦãŧãˇã§ãŗãēããŧã ãŽãĄãŗããŧã§ãã ããŽãģããˇã§ãŗã§ã¯ãDockerãŽį´šäģã¨æĻčĻãĢã¤ããĻčĒŦæããžãã DockerãĢã¤ããĻãŽããžããžãĒãã¨ãDockerããŗãŗãããäŊŋį¨ããéįēč ãŽã¨ã¯ãšããĒã¨ãŗãšãŽåšįåãĢãŠãŽãããĢåŊšįĢã¤ãããžããæŦįĒį°åĸã¨ãŗãŗããåãããį°åĸåããĢãĸããĒãąãŧãˇã§ãŗãæēåããæšæŗãĢã¤ããĻã芹ãããžãã ããĻãå ãĢé˛ãã§ãå¤ããŽį°ãĒããã¨ãĢã¤ããĻ芹ããã¨ãĢãĒãã¨ããčĻåãåããŖãĻčŋ°ãšãĻãããžãã ãããĻãå¤ããŽããĸãäžããããĻį§ããĄãŽããžããžãĒčŖŊåããĩãŧããšãããšãĻįĩãŋåãããŖãĻãããŽãčĻããã¨ãã§ããžãã ããã¯ããããããã§ãããã ããžãæˇąãæãä¸ããã¤ããã¯ãããžããã ã§ããããããã¯é常ãĢåš ãŽåēãäŧčŠąã¨æˇąãäŧ芹ãĢãĒãã§ãããã ã§ããããåŽéãĢãŠãŽãããĢåŽčŖ ããåŽčĄãĢį§ģãããåĻãļãããĢã¯ãäģãŽãģããˇã§ãŗããã§ãã¯ããåŋ čĻããããžãã
ããããããã§ã¯ãäģæĨã¯äŊã芹ããã? ãžãããŗãŗãã 101ãčĄããžãã DockerãčĄãããšãĻãŽãã¨ã¯ããŗãŗãããĢįĻįšãåŊãĻãĻããžãã ã§ããããį§ããĄå ¨åĄãåãããŧã¸ãĢãããã¨ãįĸēčĒããžãããã ãžããããŽãã¨ããå§ããžãããã æŦĄãĢãDockerãäŊŋį¨ããããžããžãĒæšæŗãĢéŖãŗčžŧãŋãžãã ããã§ã¯ã2ã¤ãŽå°å ĨããŠãã¯ãįšãĢãŗãŗãããĩããŧãéįēãĢã¤ããĻã芹ãããžã - åēæŦįãĢã¯ããĸããĒãąãŧãˇã§ãŗãŽéįēããĸããĒãąãŧãˇã§ãŗãŽããšããããŧã å ¨äŊã§ä¸č˛Ģããį°åĸãŽæäžãĒãŠãĢãŗãŗããããŠãŽãããĢäŊŋį¨ã§ãããã¨ãããã¨ã§ãã- æŦĄãĢããŗãŗããåãããį°åĸã§ãŽæŦįĒį°åĸį¨ãĢãĸããĒãąãŧãˇã§ãŗããŠãŽãããĢæēåã§ããžãã? ã§ã¯ããĸããĒãąãŧãˇã§ãŗããŗãŗããåãããĢã¯ãŠãããã°ããã§ããããã åšįįãĢæ§į¯ãããĢã¯ãŠãããã°ããã§ãã? ããŽįģåãĒãŠããŠãŽãããĢäŋčˇããžãã? ããã§ãããŽéį¨ã§ããžããžãĒããŧãĢããĩãŧããšãĢã¤ããĻã芹ãããžãã
Â
įŽæŦĄ
- ãŗãŗãã 101 (1:34)
- įģåãŽæ¤į´ĸ (6:22)
- åģēįŠã¤ãĄãŧ㸠(7:40)
- DockerãŽäŊŋãæš (8:40)
- Dockerããšã¯ããã (10:20)
- ãŗãŗãããĩããŧãéįē (12:30)
- ããĸ (16:18)
- įĩąåããšããŽčĒ˛éĄ (23:05)
- TestcontainersãŽį´šäģ (24:15)
- ããĸ: Testcontainers (25:40)
- ãĸããĒãŽãŗãŗããå (29:57)
- Docker Init(31:41)
- GitHub ãĸã¯ãˇã§ãŗ (32:18)
- ã¯ã¤ãã¯ããŗã/ããšãããŠã¯ããŖãš (32:59)
- ããĸ (35:58)
- æĻčĻ (41:16)
- ãããĢčŠŗãã
Â
ãŗãŗãã 101 (1:34)
ããã§ã¯ããŗãŗãã 101ãĢéŖãŗčžŧãŋãžãããã ãããĻãį§ããĄãįããæåãŽčŗĒåã¯ããŗãŗããã¨ã¯äŊã§ãã? ãããĢįããæåãŽæšæŗã¯ãåŽéãĢäžããäŊŋããã¨ã§ãã ã§ããããį§ããĄã¯įããšããŧãããŠãŗãæãŖãĻããžãããžãã¯į§ããĄãŽãģã¨ããŠãã¨ãĢããæãŖãĻããžãã į§ããĄãŽãšããŧãããŠãŗãĢã¯ãããžããžãĒãĸããĒãąãŧãˇã§ãŗãã¤ãŗãšããŧãĢãããĻããžãã ããŽå ´åãįˇãéãéģč˛ãéįˇč˛ãŽ4ã¤ãŽį°ãĒããĸããĒããããžãã ãããĻãčããĻããã ããããŽã¯ãããããŽãĸããĒãŽ1ã¤ãåŽéãĢã¤ãŗãšããŧãĢããæšæŗãã¤ãžãéģ芹ãŽč¨åŽãéŠåãĒäžåéĸäŋã¨č¨åŽãĒãŠãããšãĻãĢã¤ããĻåŋé ããĒããã°ãĒããĒããŖããŽã¯ãã¤ã ãŖããã¨ãããã¨ã§ãã ãžããįãã¯ããããæąēããĻãããžããã ãããĒåŋé ã¯ä¸åēĻããããžããã§ããã ãĒããĒããį§ããĄã¯äŊãããĻãããŽã? ãĸããĒãšããĸãéããã¤ãŗãšããŧãĢããŋãŗãã¯ãĒãã¯ããã¨ãããĻãŗããŧããããã¤ãŗãšããŧãĢãããæ°į§äģĨå ãĢæē帯éģ芹ãĢãĸããĒã襨į¤ēãããžãã ãããĻããããããããã§čĩ¤ããĸããĒãąãŧãˇã§ãŗãã¯ãĒãã¯ããã¨ãããŽãĸããĒãį§ãŽéģ芹ã§åŽčĄãããžãã ãããĻãžããæē帯éģ芹ãŽäģãŽãĸããĒãĢã¤ããĻåŋé ããåŋ čĻã¯ãããžããã éããĸããĒãčĩˇåããã¨ããĢãčĩ¤ããĸããĒãĢãŠãŽãããĢåŊąéŋããããåŋé ããåŋ čĻã¯ãããžããã ãããã¯ããšãĻãããããŽåéĸãããį°åĸãåŽčĄããĻããžãã ãžãããŗãŗããã¯åãããŽã¨ããäŧŧãĻããžãã įĸēããĢããããã¯å°ãį°ãĒãæšæŗã§åŽčŖ ãããĻããžãããããšãĻãŽãŗãŗããåããããããģãšãåéĸãããį°åĸã§åŽčĄã§ããäģãŽãŗãŗããããåŽå ¨ãĢįŦįĢããĻããã ãã§ãĒããããšããããįŦįĢããĻããåæ§ãŽåéĸãģãããæäžããžãã
ã§ã¯ãããã§äžãčĻãĻãŋãžãããã PostgreSQLãåŽčĄãããã¨æŗåããĻãŋãĻãã ããã ãŗãŗããåãããį°åĸã§ã¯ãDocker HubãĢãĸã¯ãģãšããĻããPostgreSQLãæĸããã¨č¨ããã¨ãã§ããžãã åŽéãDocker Hubã¨ããã§ããŠãĻãļãĢåãæŋããã¨ãPostgreSQLã¤ãĄãŧã¸ã襨į¤ēãããåå¨ããããšãĻãŽį°ãĒãããŧã¸ã§ãŗãĒãŠãããŽã¤ãĄãŧã¸ãĢéĸããå¤ããŽčŠŗį´°ãįĸēčĒã§ããžãã ææ°ãŽ 17ãäŊŋããžãã1ã ãžãã¯ãå¤ãããŧã¸ã§ãŗãåŋ čĻãĒå ´åã¯ã 12ãåŽčĄã§ããžãã21ã ãŋã°ãŋããĢį§ģåããĻãäģãŽå¤ããŽãŋã°ã襨į¤ēãããã¨ãã§ããžãã PostgresãåŽčĄããæšæŗãĢéĸããčŋŊå ãŽãããĨãĄãŗãããããžããããããĢããį§ãã§ãããã¨ã¯ãããã§ãŋãŧãããĢãĢã¸ãŖãŗãããĻãdockerrunããŗããŗããåŽčĄãããã¨ã§ãã ãããĻãããã¯ããšããŧãããŠãŗãŽäžãã§čŠąããĻãããĸããĒãŽã¤ãŗãšããŧãĢã¨åŽčĄã¨é常ãĢããäŧŧãĻããžãã ãããããããäŊããããã¨ããĻãããã¨ããã¨ããŗãŗãããåŽčĄããį°åĸ夿°ãæåŽã(ããã§ã¯ããŧãããããŗã°ãĢã¤ããĻãããĢčĒŦæããžã)ãããŽįšåŽãŽããŧã¸ã§ãŗãŽã¤ãĄãŧ㸠17ã§Postgresã¤ãĄãŧã¸ãåŽčĄãããã¨ããžãã1ã
ãããĻãEnterããŧãæŧãã¨ãPostgresãčĩˇåããžãã ãã§ãĢã¤ãĄãŧã¸ãããĻãŗããŧãããžããã ããããĒãã¨ãããĻãŗããŧããæåãĢčĄããããŽã襨į¤ēãããžãã ããããããšãĻãŽãã°åēåãåēåããããŽã§ãPostgresã¯åŽčĄãããĻããžãã ããĻãčĻããĻããæšããããŖãããã¨æããžãããããããŽåãŗãŗããã¯åéĸãããį°åĸã§åŽčĄãããĻããã¨čŋ°ãšãžããã ããããŖãĻãããŽããŧãããããŗã°ãčĄãŖãĻãããã¨ã¯ãåēæŦįãĢãããã¯ãŧã¯åéĸãĢįŠ´ãįĒããããĒããŽã§ãã ããããã°ãããŧãĢãĢããˇãŗãããĸã¯ãģãšã§ããžãã ããããĒãã¨ãããŧãŋããŧãšãĢãĸã¯ãģãšã§ããžããã ã¤ãžãããããč¨ãŖãĻãããŽã¯ãããšããŽããŧã 5432 ããŗãŗãããŽããŧã 5432 ãĢæĨįļãããã¨ã§ãã ããã§ãããã§į§ãã§ãããã¨ã¯ãããã§åĨãŽãŋããéããã¨ãã§ããã¨ãããã¨ã§ãã ãããĻããã¤ããŖããĢã¤ãŗãšããŧãĢãããPSQLãŗããŗããŠã¤ãŗããŧãĢãäŊŋį¨ããĻãããŧãĢãĢããšããĢæĨįļãããã¨ã ãč¨ããžãã č¨åŽããããšã¯ãŧã(dev)ãäŊŋį¨ããžãã ãããĻäģãį§ã¯ããŧãŋããŧãšãĢæĨįļããĻããžãã įš°ãčŋããĢãĒããžãããäŊãã¤ãŗãšããŧãĢããåŋ čĻã¯ãããžããã§ããã äŊãč¨åŽããåŋ čĻã¯ãããžããã§ããã ãããĻãããã¯ããžããããžãã į§ã¯åãåããã¨ãã§ããžãã ããĄããããããĢã¯ããŧããĢã¯ãããžããã įŠēãŽããŧãŋããŧãšã§ãã ããããåŽäēããããCtrl-Cãæŧãã ãã§ããŧãŋããŧãšãåŽæããžãã æĸãžãŖãã ãŗãŗããã¯ããåŽčĄãããĻããžããã ãããĻãįģåãåé¤ãããã¨æãŖãããåēæŦįãĢããšãĻãåĢãžããĻãããããąãŧã¸ã¯ãĒããĒãŖãĻããžããžãã į§ãŽããˇãŗãĢã¯äŊãã¤ãŗãšããŧãĢãããĻããžããã įš°ãčŋããĢãĒããžããããšããŧãããŠãŗãŽãĸããĒãŽãããĢãããããŽããŧãŋããĢã§åéĸããããããģãšãæãĻãã¨ããčãæšã§ãã ãããã大ããĒéã㎠1 ã¤ã¯ãããããŽãŗãŗããã褿°æĨįļããĻéįēį°åĸãäŊæã§ãããã¨ã§ãã ãããĻãããã¯ããã§ãããĢããããžãã
ããĻãããã§ãŽãšãŠã¤ããĢæģãã¨ããããĢã¤ããĻéŠåãĒåŽįžŠããããããĢã䏿ĨãŽįĩãããŽãŗãŗããã¯ããšããŧãããŠãŗãŽãĸããĒã¨åããããĢãããˇãŗä¸ãŽå¤įĢãããããģãšãĢãããžããã åŽå ¨ãĒäģŽæŗããˇãŗã§ã¯ãããžããã ã¤ãžãããĢãŧããĢããã¤ããŧãã¤ãļãŧãĒãŠã¯éĸäŋãããžãããããã¯ãããˇãŗä¸ã§åéĸããããããģãšãĢãããžããã ã¤ãĄãŧã¸ã¯ããŗãŗããåãããį°åĸãåŽčĄãããããĢåŋ čĻãĒããšãĻãæäžããã¤ãŗãšããŧãĢãããąãŧã¸ã¨čããĻãã ããã ããããŖãĻãããšãĻãŽãã¤ããĒãããšãĻãŽããĄã¤ãĢãããšãĻãŽæ§æäžåéĸäŋãĒãŠãæäžããžãã ããããŖãĻãPythonãĸããĒãããå ´åãPythonãŠãŗãŋã¤ã ããããããããįļããžãã
Â
įģåãŽæ¤į´ĸ (6:22)
ã§ã¯ãããå°ãæãä¸ããã¨ãããããŽįģåã¯ãŠããĢãããŽã§ãããã? ããĻãDocker HubããæĨãPostgresãŽä¸äžãčĻãžããã ãžããDocker Hubã¯ä¸įæå¤§ãŽããŧãąããããŦã¤ãšã§ãã ããã¯į§ããĄãéåļããæäžãããĩãŧããšã§ãã ãããĻãåŠį¨å¯čŊãĒããžããžãĒįģåããããããããžãã åŽéãDocker HubãŽããŠãĻãļãĢæģãã¨ããããĢããå¤ããŽįģåãčĒŋãšããã¨ãã§ããžãã ãžããDockerãŽå Ŧåŧã¤ãĄãŧã¸ãŽãģãããčĻãã¨ããããĢã¯ããžããžãĒį¨ŽéĄãŽã¤ãĄãŧã¸ããããã¨ãããããžãã åŽčĄããã°ãããŽPostgresãŗãŗããã¨ããäŧŧãĻããžãã ããããŽããã¤ãã¯ãRedisãPostgresãããã§ãnginxãĒãŠããããĢåŽčĄã§ãããŊãããĻã§ãĸãæäžããã¤ãĄãŧã¸ã§ãã ããããããããŽäģãŽããã¤ãã¯ãåãĢãããåŽčĄããã¨ã¯ãŠãããæåŗã§ãã? äžãã°ãPythonãŽãããĢã Pythonã¤ãĄãŧã¸ã¯ãæĄåŧĩããĻįŦčĒãŽãĸããĒãąãŧãˇã§ãŗãæ§į¯ãããããŽåĒããåēį¤ãæäžããžãã įš°ãčŋããĢãĒããžãããPythonãåŽčĄããã ãã§ãĒããPythonãŠãŗãŋã¤ã ãpipããããŗPythonį°åĸãĢæåž ãããããŽäģãŽããŧãĢãåããPythonã¤ãĄãŧã¸ãåŋ čĻã§ãã ãããĻããããčĒåãŽã¤ãĄãŧã¸ãŽããŧãšã¨ããĻäŊŋããããããæĄåŧĩãããã¨ãã§ããžãã ãããĻãžãããããĢã¯ãããããŽįģåããããžãã DockerãŽå Ŧåŧã¤ãĄãŧã¸ããããžãã ãããã¯ãį§ããĄãäŊæããįļæããäŋčˇããã¤ãĄãŧã¸ã§ãããå¤ããŽįĩįšãæ´ģį¨ãããããŽåĒããåēį¤ãæäžããžãã
Â
åģēįŠã¤ãĄãŧ㸠(7:40)
įŦčĒãŽã¤ãĄãŧã¸ãæ§į¯ããæēåãã§ããããã¤ãĄãŧã¸ãŽæ§į¯ã¨ãããĢéĸããããšãããŠã¯ããŖãšãĢįĻįšãåŊãĻãåĨãŽãģããˇã§ãŗããããžãã ãã ããé常㯠Dockerfile ãäŊŋį¨ããžãã ãžããDockerfile ã¯ãããŽã¤ãĄãŧã¸ãŽããĢãæšæŗãĢéĸããä¸éŖãŽåŊäģ¤ãæäžããžãã ããŽäžã§ã¯ãPythonããéå§ããããã¤ããŽããĄã¤ãĢããŗããŧããããããŽäžåéĸäŋãã¤ãŗãšããŧãĢãããããŽããã¤ããŽãŗããŗããåŽčĄããžãã ãžããåŽčĄãĢåŋ čĻãĒããšãĻãŽã㎠(ããŽå ´å㯠Python ãĸããĒãąãŧãˇã§ãŗ) ãåĢãã¤ãŗãšããŧãĢ ãããąãŧã¸ãäŊæããžãã CLIãäŊŋį¨ããĻããĢãã§ããžãã į§ã¯DockerããĢããčĄããžãã ããŽįģåãĢååãäģãããã¨ãã§ããžãã ããŽå ´åã¯ãmoby/my-app ã§ãã ãããĻãããããŦã¸ãšããĒãĢãããˇãĨã§ããžãã ãžããããŽãŦã¸ãšããĒã¯Docker HubãAWS ECRãå é¨ãŽJFrog ArtifactoryãĒãŠã§ãã ããžããžãĒãŦã¸ãšããĒããããžãã ãããĻããããĢã¯ãããããŽããŖãŗãšããããžãã
Â
DockerãŽäŊŋãæš (8:40)
įš°ãčŋããĢãĒããžããããŗãŗãããåéĸããããããģãšãã¤ãĄãŧã¸ãĢã¯ããĸããĒãąãŧãˇã§ãŗãåŽčĄãããããĢåŋ čĻãĒããšãĻãŽããŽãåĢãžããĻããžãã Dockerã¯ãããĢãŠãŽãããĢéŠåããžãã? DockerãæäžããããžããžãĒãĩãŧããšã¨ããŧãĢã¯äŊã§ãã? ããĻãæåãĢč¨åãããŽã¯ããģã¨ããŠãŽäēēããã§ãĢããįĨãŖãĻããããŽã§ãã
- Docker ããšã¯ããã: éįēč ã¨ããĻãŽį§ãĢã¨ãŖãĻãŽåä¸ãŽã¯ãŗã¤ãŗãšããŧãĢãŊãĒãĨãŧãˇã§ãŗã į§ã¯ãããčĒåãŽããˇãŗãĢã¤ãŗãšããŧãĢããžããããã¯į§ããŗãŗããã§ããšãĻãéįēãããšããæ§į¯ãããããĢåŋ čĻãĒããšãĻãŽããŧãĢãį§ãĢä¸ããžãã ãããĻãããŽäžãããå°ãåžã§čĻãĻãããžããÂ
- Docker ãã: įģåãčĻã¤ããããįģåãå ąæããããããã§įģåãĒãã¸ããĒãäŊæãããã§ããããŧãąããããŦã¤ãšã§ããÂ
- Docker Scout: į§ããĄãæäžããčŖŊåã¯ãåēæŦįãĢæŦĄãŽčŗĒåãĢįããžã:į§ã¯ã¤ãĄãŧã¸ãæ§į¯ããžããããč¯ãã¤ãĄãŧã¸ãæ§į¯ããããŠããã¯ãŠãããã°ããããžãã? ããŽįģåã¯ãįĩįšãŽãŗãŗããŠã¤ãĸãŗãš ããĒãˇãŧãæēãããĻããžããã? ã§ããããScoutãäŊŋãã°ãããžããžãĒããĒãˇãŧãĢį §ãããĻčĒåãŽã¤ãĄãŧã¸ãåæãããã¨ãã§ããžãã ããã§ã¯ãããŽäžãå°ãã ãčĻãĻãããžãã ãããĻãåéĄãįēįããå ´åã¯ãScoutãããããäŋŽæŖããæšæŗãĢã¤ããĻæ¨åĨ¨äēé ãæäžã§ããžãã ããŽãããéįēč ã¨ããĻãããšããčĄããã¤ãĄãŧã¸ãããĢãããã¤ãĄãŧã¸ãããšãããåæãããŗãŧãããããˇãĨããĻCI/CDãããģãšãé˛ãããŖã¨åãĢãããããæēæ ããĻãããã¨ãįĸēčĒã§ããžãã ããã§ããããŖãŧãããã¯ãĢãŧããįããããã¨ããĻããžããÂ
- Docker ããĢã ã¯ãŠãĻã: ã¤ãĄãŧã¸ãããčŋ éãĢäŊæãããŽãĢåŊšįĢãĄãžãã ããŽãããã¯ãŠãĻããŽãããŧã¸ã ããĢããŧãäŊŋį¨ããã¨ãããčŋ éãĢããĢãããäģĨåãŽããĢããŽããŖããˇãĨãæ´ģį¨ã§ããžãã ãããĻãããŽäžãåžã§ããã¤ãčĻãĻãããžããÂ
- Testcontainersã¯ãŠãĻã: ãŗãŗãããŽåŽčĄãã¯ãŠãĻãããŧãšãŽį°åĸãĢå§äģģãããŽãĢåŊšįĢãĄãįšãĢCIį°åĸã§ãŽįĩąåããšããåŽčĄãããŽãĢé常ãĢåŊšįĢãĄãžãã ãããĻãžããããŽäžããããĢčĻãĻãããžããÂ
Â
Dockerããšã¯ããã (10:20)
Docker DesktopãĢã¤ããĻããå°ãčŠŗããčĒŦæããã¨ãå¤ããŽæˇˇäšąããããããDocker Desktopã¯åŗä¸ãŽGUIäģĨä¸ãŽããŽã§ãããã¨ãæįĸēãĢãããã¨æããžãã ããã¯ãį§ãŽããŧãĢãĢ ããˇãŗã§ãŗãŗãããŧãæäŊãããããĢåŋ čĻãĒããšãĻãæäžããžãã ã¤ãĄãŧã¸ãŽæ§į¯ããŗãŗãããŽåŽčĄãKubernetesã¯ãŠãšãŋãŽãšããŗãĸãããHelmããŖãŧããŽããšããã¯ããšããŠããããŠãŧã ãŽãĩããŧããäģãŽããšãĻãŽčŖŊåããĩãŧããšã¨ãŽįĩąåãå¯čŊã§ãã CLIãŽGUIãæäžããžãããæãéčĻãĒãã¨ã¯ãįšãĢã¨ãŗãŋãŧããŠã¤ãēãšããŧãšãŽäēēã ãĢã¨ãŖãĻãã¨ãŗãŋãŧããŠã¤ãēåļåžĄãæäžããĻãäŧæĨãéįēį°åĸãåŽå ¨ã§ãģããĨãĸãĢäŋã¤ãã¨ãã§ãããããĢãããã¨ã§ãã ãããĢã¯ããĻãŧãļãŧãååžã§ãããŦã¸ãšããĒãĢéĸããč¨åŽãåļåžĄããããŗéįēč ã¯ãŧã¯ãšããŧãˇã§ãŗãåŽå ¨ãĢäŋã¤ãããŽããŽäģãŽč¨åŽãåĢãããã¨ãã§ããžãã
ããĻãåŽéãĢãŗãŗãããæĄį¨ããĻäŊŋį¨ããã¨ããããããæĨŊããŋãŽå§ãžãã§ãå¤ããŽããĸãĢã¯ã2ã¤ãŽį°ãĒãããŠãã¯ããããžãã 1ã¤įŽã¯ããŗãŗãããĩããŧãéįēã¨åŧã°ããããŽã§ãã ããã¯åēæŦįãĢãéįēã¨ããšãã§ãŗãŗãããäŊŋį¨ããæšæŗã§ãããåēæŦįãĢã¯ãŗãŧãããããˇãĨããĻCIãã¤ããŠã¤ãŗãéå§ããåãŽããšãĻã§ãã éįēį°åĸãŽč¨åŽæšæŗãæããĻãã ããã ããŧã ãŽä¸č˛Ģæ§ãäŋã¤ãããĢããŠãããã°ããã§ãããã? ãŗãŗããã§ããšããããĢã¯ãŠãããã°ããã§ãã? įã ãããĢããä¸č˛Ģæ§ãäŋããããĒãĸãŧãį°åĸãŽãããĢčĒåčĒčēĢãåãéĸããã¨ãã§ããããã§ã¯ããŽäžããããĢčĻãĻãããžãã į§ãææãããã¨ãŽ 1 ã¤ã¯ãéįēãŽãĄã¤ãŗ ãĸããĒãåŽéãĢãŗãŗãããŧåãããĻããããŠãããĢéĸäŋãĒããããŧãĢãĢéįēã§ãŗãŗãããŧãäŊŋį¨ã§ããã¨ãããã¨ã§ãã ãããĻãããã§ãããŽäžãããã¤ãčĻãĻãããžãã
ãã1ã¤ãŽããŠãã¯ã¯ãåŽéãĢãĸããĒãąãŧãˇã§ãŗããŗãŗããã§ãŠãŽãããĢããĢãããæŦįĒį°åĸãĢãŠãŽãããĢæēåãããã¨ãããã¨ã§ãã ãŠãããŖãĻäŊãã°ãããŽ? ããšãããŠã¯ããŖãšãĢåžããĢã¯ãŠãããã°ããã§ãã? ãģããĨãĒããŖãįĸēäŋãããĢã¯ãŠãããã°ããã§ãã? ãããĻããããĢã¯é常ãCIããŧã ãããŠããããŠãŧã ããŧã ãSREãĒãŠãããå¤ããŽããŧã ãéĸä¸ãããã¨ãĢãĒããžãããĒããĒããããã¯į§ããĄãåŽéãĢãĸããĒãąãŧãˇã§ãŗããããã¤ããæšæŗãå¤ããããã§ãã
Â
ãŗãŗãããĩããŧãéįē (12:30)
ãžãã¯ããŗãŗããæ¯æ´éįēããå§ããžãããã ããŧãĢãĢéįēã§ãŗãŗãããäŊŋį¨ãããĢã¯ãŠãããã°ããã§ãã? å ãģãŠãPostgresãŗãŗãããåŽčĄãããã¨ãčĻãžããããããŽãšããŧãĒãŧãå°ãčŠŗããčĒŦæããžãããã į§ããĢãŋãã°ãĩãŧããšã§ãããĸããĒãąãŧãˇã§ãŗãæãŖãĻãããããŽãĸããĒãąãŧãˇã§ãŗãAPIãæį¤ēããã ãã ã¨æŗåããĻãã ããã ããŽãĸããĒãąãŧãˇã§ãŗã¯ãåãĢčĻããŽã¨åããããĢãããŽããŧãŋãPostgresããŧãŋããŧãšãĢäŋåããžãã į§ã¯ããããŗãŗããã§åŽčĄã§ããžãã ããããį§ãŽãĸããĒãąãŧãˇã§ãŗã¯ããĢãŋãã°ãįģåãäŋåããåŋ čĻããããããããããŽįģåãAWS S3ãĢäŋåããã¨ããžãããã į§ãŽãĸããĒãąãŧãˇã§ãŗã§ã¯ãã¤ãŗããŗããĒ ãĩãŧããšãĒãŠãŽå¤é¨ããŧãŋ ãĩãŧããšãåŠį¨ããĻããžãã ãĢãŋãã°ãæ¤į´ĸããã¨ãįšåŽãŽå ´æãĢįšåŽãŽãĸã¤ãã ãããã¤åå¨ããããįĨããã¨ãã§ããžãã ãĢãŋãã°å ã§å¤æ´ãįēįããã¨ããĸããĒãąãŧãˇã§ãŗã¯æ´æ°ãKafkaã¯ãŠãšãŋãĢå ŦéããäģãŽããĻãŗãšããĒãŧã ãĩãŧããšãããããŽã¤ããŗããĢåŋįããããéįĨãéäŋĄãããã§ãããããĢãĒããžãã
ã§ãããããããĢã¤ããĻčããã¨ããããĢã¯å¤ããŽåãé¨åããããžãã ããã§åéĄã¨ãĒããŽã¯ããããäŊŋãŖãĻéįēį°åĸããŠãŽãããĢč¨åŽãããã¨ãããã¨ã§ãã ããĻãããčĻããããã¨ãŽ1ã¤ã¯ãããŧãĢãĢéįēį°åĸã§APIããšããŗãĸããããã ãã§ãĒãããããã¤ããããĩãŧããšãããããéįēį¨ãŽå ąæAWSãĸãĢãĻãŗããĢæĨįļããã¨č¨ãäēēããããã¨ã§ãã į§ãŽãĸããĒãĢ㯠S3ãåŋ čĻã§ãããå¤é¨ã¤ãŗããŗããĒ ãĩãŧããšãåŋ čĻã§ãã ãĸããĒãäģãŽå ´æã§åŽčĄãããĻãããĩãŧããšãĢæĨįļã§ãããããĢãããĻãã ããã ãããĻããģã¨ããŠãŽå ´åãããã¯ããĒãããžããããžãã ããããã㎠1 äēēãŽéįēč ãéįēč ãŽããŧã ãĢåąããĻãããã¨ãĢæ°äģãã¨ãäģåēĻã¯åããĒãŊãŧãšããããŖãĻäēãäģãŽå¤ããŽéįēč ãããžãã ãžããS3 ããąãããŽIAMããĒãˇãŧãããĄãããĄããĢãĒããčǰãããąãããããĒãã¸ã§ã¯ãããããˇãĨãžãã¯ããĢã§ããĒããĒãŖãããčǰããčǤãŖãĻPostgresããŧãŋããŧãšããããŧããĢãåé¤ãããããå ´åãĢãŠããĒãã§ããããã įš°ãčŋããĢãĒããžãããäēēã ããäēããŽã¤ãžå ãč¸ãŋã¤ãåãæŠäŧãããããããã訹å¯ãå°įĄããĢãĒãå¯čŊæ§ããããžãã ãããĻãéįēä¸ãŽä¸æĨãŽįĩãããĢã¯ãį§ã¯ããŽãããĒãã¨ãŽãģã¨ããŠãæ°ãĢããžããã
éįēį°åĸãį°ĄįĨåã§ããžãã? ãžããæãããĢįãã¯ã¤ã¨ãšã§ã - ã ãããããį§ããĄã¯ãããĢã¤ããĻ芹ããĻãããŽã§ãã ã§ã¯ãåĨãŽæšæŗã¨ããĻãéįēč ãŽã¯ãŧã¯ãšããŧãˇã§ãŗã§ãéįēį°åĸãŽAWSãĸãĢãĻãŗããĢåŽéãĢæĨįļããäģŖãããĢãS3äēæãŽãĩãŧããšãããŧãĢãĢã§åŽčĄããå ´åã¯ãŠãã§ããããã įĩåąãŽã¨ãããį§ãŽãŗãŧãã¯APIã¨éäŋĄããĻããã ãã§ãã ãããåŽéãĢčåžãĢS3 ã§ããããŠããã¯ããžãæ°ãĢããžããã ã§ã¯ãããŽS3 ãS3 APIäēæãĩãŧããšãĢä礿ãããããããŧãĢãĢã§åŽčĄããå ´åã¯ãŠããĒãã§ããããã ããĻããããããããĒãããĒãį§ãŽã¤ãŗããŗããĒãĩãŧããšã§ããããã§ããĒããŽã§ãããã? įĩåąãŽã¨ãããã¤ãŗããŗããĒ ãĩãŧããšã¯åãĒã API ã§ãã ã§ã¯ãããį§ããããããšãĻãå˛įŦããããŠããĒãã§ãããã? ãããĻãããã¯ãŠãŽãããĒæŠäŧãéããŽã§ãããã? ãããĢã¤ããĻã¯ããããĢčĒŦæããžãã KafkaãããŧãĢãĢã§åŽčĄãããã¨ãã§ããžãã PostgresãããŧãĢãĢã§åŽčĄã§ããžãã ã§ããããããã ãã§ãããĒãĸãŧãéįēį°åĸã ãŖãããŽãäģã§ã¯ããŧãĢãĢãĢãĒãŖãĻããã¨ããčĒåãŽéįēãããã§ãĢæ¨ĄæŦãå§ããĻããžãã ãããããããĢæŠčŊãčŋŊå ãããã¨ãã§ããžãã į§ãŽéįēč å ¨åĄãKafkaãããžãåžæã§ã¯ãĒããããžããžãĒCLI/ãŗããŗããŠã¤ãŗåŧæ°ãĒãŠãããšãĻįč§ŖããĻããĒãå ´åã¯ãŠããĒããžãã? ãžããKafkaã¯ãŠãšãŋã¨å¯žčŠąããĻãĄããģãŧã¸ãŽå ŦéãããšããããããĄããģãŧã¸ãæŖããįæãããĻãããã¨ãæ¤č¨ŧã§ããåĨãŽãĩãŧããšãįĢãĄä¸ãããã¨ãã§ããã°ããã¨æããžããã? ãããã¯ãããŧãŋããŧãšã§äŊãčĩˇããŖãĻããããčĻčĻåãããããŽãĒãŧããŗãŊãŧãšããŧãĢãããããpgAdminããšããŗãĸãããããĻãã ããã ãããĻåãŗãäģãŽæšæŗã§ã¯åŽįžãéŖãããŖãæŠčŊã§éįēį°åĸãåŧˇåãå§ãããã¨ãã§ããžãã
Â
ããĸ (16:18)
ãããčĻãĻãŋãžãããã 大ä¸å¤Ģã§ãã ããããVSCodeãĢåãæŋããžãã ãããĻãããVSCodeã§ã¯ãããŽComposeããĄã¤ãĢããå§ããžãã ããĻãį§ã¯ãžã ComposeãĢã¤ããĻ芹ããĻããĒããã¨ãįĨãŖãĻããžãããããĻãããĢã¤ããĻã¯åĨãŽãģããˇã§ãŗã§ããŖã¨čŠąããžãã ãã ããComposeã¯ãäģĨåãĢPostgresãĢ寞ããĻčĄãŖãdocker runãŗããŗããĢæģãã¨ãį°åĸ夿°ã¨ããŧããæåŽããĻããã¤ãĄãŧã¸ãæåŽããå ´åãŽdocker runãŗããŗããŽãããĢčããĻãã ããã ãžããããã§ããģãŧåããã¨ãããĻããžãããåŊĸåŧãéãã ãã§ãã ãããįģåããããããŧããããã¤ããŽį°åĸ夿°ãäģãŽããã¤ããŽããĄã¤ãĢããĒãĨãŧã ãããããããĢã¤ããĻã¯åžã§čĒŦæããžãã ããããįš°ãčŋããĢãĒããžããããããĢä¸ã¤ãŽãŗãŗãããããããããĢåĨãŽãŗãŗããããããåĨãŽãŗãŗãããããã¨ãããĸãĻããŠã¤ãŗãæãããĻãããžãã ããŽãããããã§ã¯į°åĸãč¨åŽãããããĢå¤ããŽãŗãŗãããåŽįžŠãããĻããžãã ãããĻããããĢããį§ãã§ãããã¨ã¯ã 'docker compose up'ãåŽčĄãããã¨ãã§ããã¨ãããã¨ã§ãã åēæŦįãĢãããããã¯ã°ãŠãĻãŗãã§åŽčĄãããããĢ '-d'ãčŋŊå ããĻããžãã ãããĻããããĢãããŗãŗããããšããŗãĸããããžãã ããã§ããããããŽãŗãŗãããŽä¸é¨ãããŧãŋããŧãšãæäžããĻããžãã į§ã¯LocalStackã¨ãããĒãŧããŗãŊãŧãšãŽããŧãĢãäŊŋãŖãĻAWSãåŽčĄããĻããžãã ãããĢãããåēæŦįãĢ S3 äēæãŽ API ãããŧãĢãĢãĢæã¤ãã¨ãã§ããžãã ããŽAWSãĸãĢãĻãŗããããąããã§č¨åŽããžãã KafkaãŽč¨åŽãĒãŠã§ãã ãããĻäģãæ°į§äģĨå ãĢãĸããĒãŽäžåéĸäŋãį¨ŧåããĻããžãã
ããŽããĸã§ã¯ãåŽéãĢãĸããĒãčĒåãŽããˇãŗã§ãã¤ããŖããĢåŽčĄããžãã ãyarn devãã¯NodeãĸããĒã§ãããããåŽčĄããžãã ãããĻãäŊãčĩˇãããã¨ããã¨ãããŧãŋããŧãšã¯ããšãä¸ã§å ŦéãããĻããããããĸããĒã¯ããŽå ŦéããŧããäģããĻããŽããŧãŋããŧãšãĢæĨįļããã ãã§ãã ããã§åĨãŽãŋããéããčŖŊåãäŊæã§ããããĢããŧãšã¯ãĒãããĢį§ģåããžãã ããããŖãĻãããŽå ´åã3ã¤ãŽčŖŊåãäŊæããžããã ããĻãããŽãĸããĒãąãŧãˇã§ãŗãĢããŖãĻå ŦéãããĻããAPIã¨å¯žčŠąããã ãã§ãã ããĻããšãŋãã¯ãŽä¸é¨ã§ããäģãŽããã¤ããŽãĩãŧããšããããã¨ãčŋ°ãšãžããã ããŠãĻãļãĢæģãã¨ãlocalhost:5050 (ããã¯ããã§é¸æããããŧãã ãã§ã)ã§ãpgAdminãåŽčĄãããĻãããã¨ãããããžãã pgAdminã¯ãPostgresããŧãŋããŧãšãčĻčĻåãããŽãĢåŊšįĢã¤ãĒãŧããŗãŊãŧãšããŧãĢã§ããããĩãŧããŧãéããã¨ãã§ããããŽããšã¯ãŧãã¯äŊæããĄã¤ãĢã§æ§æãããžãã ãããĻããããããããšãĻãŽãšããŧãã¨ããŧããĢãããã˛ãŧããįļãããã¨ãã§ããžãã ããŽããŧããĢãŽããšãĻãŽããŧãŋã襨į¤ēããĻãŋãžãããã ããŖãäŊãŖã3ã¤ãŽãĸã¤ãã ãčĻããžãã ããããŽããĄãŽ1ã¤ã夿´ããžãããã ãåĨãŽčŖŊåããĢ夿´ããĻãããããŠãŗãļã¯ãˇã§ãŗããŗãããããã ãã§ãã ãããĻäģãVS CodeãĢæģãã¨ãããããčŖŊå 2ããã ãããã¨č¨ããã¨ãã§ããããã§ãååã夿´ãããĻãããã¨ãããããžãã ããĻãįš°ãčŋããĢãĒããžãããããŽããŧãŋããŧãš ãã¸ãĨãĸãŠã¤ãļãŧã§ã¯ãããŠãŽãããĢč¨åŽããã°ãããããįč§ŖãããŽãĢæéãč˛ģããåŋ čĻã¯ãããžããã§ããã ã¤ãŗãšããŧãĢæšæŗã¯? How to Configure It?ãã¨ãããĄããģãŧã¸ã襨į¤ēããããããĢãĒããžããã ããã¯ãããŽããŧãĢãŽäŊæč ããŗãŗããã¤ãĄãŧã¸ãå Ŧéããäģã§ã¯ãããåŽčĄãããã¨ãã§ãããĒãŧããŗãŊãŧãšãŽããŧãĢã§ãã ã¨ãĻãį°Ąåã§ãã
ããã§ããããĢã¤ãŗããŗããĒããŧãŋããããã¨ãįĸēčĒã§ããžãã ããã¯ãŠãããæĨãĻãããŽã§ãã? įš°ãčŋããĢãĒããžãããį§ã¯WireMockã¨ããããŧãĢãäŊŋį¨ããã¤ãŗããŗããĒãĸãã¯ãåŽčĄããĻãããããŽããŧãĢãäŊŋį¨ããã¨ãããã¤ããŽããĄã¤ãĢããããŗã°ãå Ĩåã§ããžãã ããŽãããį§ãŽ API ãå¨åēĢãĩãŧããšãĢ寞ããĻčŖŊåįĒåˇãŽãĒã¯ã¨ãšããååēĻčĄãã¨ã 2 (ããã¯åĨŊããĒãããĢæ§æã§ããžã) ããŽæ¤į´ĸãŽãããĢãã㎠JSON æŦæã§ 200 ãšããŧãŋãšãčŋããžãã ãããĻããããããŧã¸ããããã¨ãããããžãã ããĻããĸãã¯ãäŊŋį¨ãã大ããĒåŠįšãŽ1ã¤ã¯ãäģãŽã¨ãŠãŧįļæ ãããšããå§ãããã¨ãã§ãããã¨ã§ãã ãã¨ãã°ãããŽåĨãŽã¨ãŗããã¤ãŗããĢį§ģåããã¨ãåŽéãĢã¯ã¤ãŗããŗããĒãĩãŧããšãããįēįããã¨ãŠãŧãį¤ēããĄããģãŧã¸ãåĢãJSONæŦæãŽ 500 ãéäŋĄããããã¨ãĢãĒããžãã ãããĻãį§ãŽãŗãŧããã㎠500 ã¨ãŠãŧãąãŧãšãåĻįããĻãããã¨ãæ¤č¨ŧã§ããžã-ããã¯įįēããžããã ã¨ãŠãŧãĄããģãŧã¸ãčŋããžãããåŋ čĻãĒæŽããŽéĸéŖčŠŗį´°ãæäžããžãã ã§ããããåãŗãåŽéãŽãĩãŧããšã¨čŠąããĻããã¨éŖããäģãŽæĄäģļãããšãĻããšããå§ãããã¨ãã§ããžãã įš°ãčŋããĢãĒããžããããŗãŗãããäŊŋį¨ããã¨ãããããŽããžããžãĒãĩãŧããšãį°ĄåãĢãšããŗãĸããã§ããžãã ããĻãããã§ãĸãã¯ãããããããĢããŧãŋããŧãšãã¸ãĨãĸãŠã¤ãļãŧãæŦ˛ããããĒãŠã
åŽã¯ãããä¸ã¤ãĄããŖã¨ããããĸããããžãã localhost:8080ãĢčĄãã¨ãkafbat ã¨ããåĨãŽãĒãŧããŗãŊãŧãšããŧãĢããããžãã Kafka ã¯ãŠãšãŋãŧã§äŊãčĩˇããŖãĻããããčĻčĻåã§ããžãã ãããĻãããŽčŖŊåãäŊæãããã¨ããĢå ŦéããããĄããģãŧã¸ãčĻããã¨ãã§ããžããã ãžãããĄããģãŧã¸ãå Ŧéããããã¨ããéŠåãĒãšããŧããæãŖãĻãããã¨ãĒãŠãæ¤č¨ŧã§ããžãã įš°ãčŋããĢãĒããžããããŗãŗãããäŊŋį¨ããã¨ããĸããĒãąãŧãˇã§ãŗãšãŋãã¯ãĢã¤ããĻčãå§ãããã¨ãã§ããžãã VS CodeãĢæģãã¨ããšããŧãããŠãŗãĸããĒãŽäģŖãããĢããģã¨ããŠãŦã´ãããã¯ãŽæããå§ãããããããžããã ãžããããžããžãĒãĩãŧããšããįįŖæ§ãåä¸ãããããããŠããĢãˇãĨãŧããŖãŗã°ããããã°ã厚æãĢããããããããŽéįēį°åĸãäŊããããĢæĨįļã§ããããžããžãĒãŗãŗããŧããŗãã¯äŊã§ããã
ããã§ãããã¤ããŽããŗããæããã¨ãããã¯į§ããĩãŧããšéãŽããããŗãĢã¨æŊ蹥åãĢįĻįšãåŊãĻãĻãããããããžããããžãã ããŧãŋããŧãšãããŧãĢãĢã§åŽčĄã§ãããŽã¯ããããŧã¸ãããŧãŋããŧãšãĩãŧããšãã¯ãŠãĻãį°åĸã§æäžããããŽã¨åããã¤ããĒããããŗãĢã ããã§ãã ããããį§ãŽAPIãããã§ãã APIã¯ããįč§ŖãããååãĢææ¸åãããĻããåŋ čĻããããžãããããĻãããããããŧãĢãĢã§ãĸãã¯ãĸãĻããããã¨ãã§ããžãã ããŽå ´åããŗãŗããããŧããããšããĢããããããĸããĒãąãŧãˇã§ãŗãĢæĨįļã§ãããããĢããžãã į§ãŽãĸããĒã¯ãã¤ããŖããĢåŽčĄãããĻããžãããåŽéãĢã¯ãŗãŗããã§ãåŽčĄã§ããžãã ãã¨ãã°ããããĢã¯åĨãŽComposeããĄã¤ãĢããããžãã ããŽå ´åããĸããĒčĒäŊã¯ãŗãŗããå ã§åŽčĄãããåēæŦįãĢã¯Nodeį°åĸãæ§į¯ããĻããžãã ããããŖãĻã 'yarn dev'ãį§ãŽããšããŽCLIã§į´æĨåŽčĄããããŽã§ã¯ãĒããåēæŦįãĢãŗãŗããåãããį°åĸå ã§åŽčĄãããĻããžãã ããŽå ´åãããŽãĒãã¸ããĒãã¯ããŧãŗã§ããããŽįšåŽãŽComposeããĄã¤ãĢãäŊŋį¨ããã¨ãããšãĻããŗãŗããã§åŽčĄããããã¨ãĢãĒããžãã DockerDesktopäģĨå¤ãĢããˇãŗãĢäŊãã¤ãŗãšããŧãĢããåŋ čĻã¯ãããžããã įš°ãčŋããĢãĒããžãããããã¯ããã§å¤ããŽč¯ãæŠäŧãéããžãã
ãžããéįēį°åĸãĢã¤ããĻčããã¨ãã¯ãããŽéįēį°åĸãĢæäžã§ããčŋŊå ãŽããŧãĢãæŠčŊãĢã¤ããĻčããĻãŋãĻãã ããããããĢãããããŧãŋããŧãšã Kafka ã¯ãŠãšãŋãŧãĒãŠãäŊŋį¨ããĻããããŽããšãĻã§ããŠããĢãˇãĨãŧããŖãŗã°ããããã°ã厚æãĢããæį¨æ§ãéĢãããã¨ãã§ããžãã
įĩąåããšããŽčĒ˛éĄ (23:05)
ã§ããããåéĄã¯ãéįēãŽæ ãčļ ããĻãããšããéå§ããæēåãã§ããã¨ãã§ãã ãããããŠãããžãã? įĩąåããšãã¯å°éŖã§ãã ãããĻãããŽå¤ãã¯ããĩãŧããšãŽãŠã¤ããĩã¤ã¯ãĢãįŽĄįããĒããã°ãĒããĒãããã§ãã ãŠãŽãããĢéå§ããžãã? ãŠãããã°åŊŧããæĸãããã¨ãã§ãããŽã§ãããã? ããšããĒãŠãčĄããããĢã¯ãåŽčĄä¸ãŽããŧãŋããŧãšãåŋ čĻã§ãã ãžããããšããŠãŗ1ãããšããŠãŗ2ãŽåŊąéŋãåãããã¨ããããŖãĻãããããĒã鎿éį¨ŧåããã¤ãŗããŠãšããŠã¯ããŖãĢã¨ãŠãžããĒããããĢãããĢã¯ãŠãããã°ããã§ããããã ãžãããĻããããĄãããĄãã§ãã ãããĻäŧįĩąįãĢãį§ããĄã¯å¤ããŽãĻãããããšãããããããŽä¸ãĢããã¤ããŽįĩąåããšããããããããĢå°ãĒãã¨ãŗãããŧã¨ãŗããŽããšããããããšãããŠããããĢåžããããĢããĻããžãã ããããįĩąåããšãã¯éŖãããããå¤ããŽå ´åãäēēã ã¯ããšããŽį æč¨ãĢčĄãįããããŽé¨åã¯éŖããã¨č¨ããžãã ã§ãããããšãŋãã¯å ã§ä¸äŊãĢæŧãä¸ããQAããšããã¨ãŗãããŧã¨ãŗããŽããšããĒãŠãčĄãã ãã§ãã ããããã¨ãŗãããŧã¨ãŗããŽããšãã¯é常ãĢæéãããããžãã ãžããé常ãĢãããã§ãã æŖããčĄããŽã¯éŖããã§ãã ã§ã¯ãåéĄã¯ããŗãŗãããŽåããŠãŽãããĢæ´ģį¨ããĻįĩąåããšããĢåŊšįĢãĻããã¨ãã§ãããã¨ãããã¨ã§ãã ããã§ãTestcontainersããŦãŧã ã¯ãŧã¯ãŽåēįĒã§ãã
Â
TestcontainersãŽį´šäģ (24:15)
ããĻãå ãĢé˛ãã§åããŖãĻæįĸēãĢããžãããTestcontainersã¯åĨãŽãŋã¤ããŽãŗãŗããã§ã¯ãããžããã ããŽå¤įĢããį°åĸã¨ããčãæšã¯å¤ãããžãããããŗãŗãããŽåãããšããŽä¸įãĢæãĄčžŧãã§ããžãã ããããŖãĻãTestcontainersãæäžãããŽã¯ããŗãŗãããããã°ãŠã ã§įŽĄįã§ãããããĢãããŠã¤ããŠãĒãŽãĒãŧããŗãŊãŧãšãŗãŦã¯ãˇã§ãŗã§ãã ããã§ãŽäžã¨ããĻãJavaãšãããããããããPostgresãŗãŗãããåŋ čĻã§ãã ãããį§ãäŊŋį¨ãããįšåŽãŽįģåã§ããããããŽå¤æ°ãĢäģŖå Ĩããžãã ããããããã¯ããã°ãŠã ãĢãããĸãããŧãã§ããããããããããšããŽãšãŋãŧããĸãã ãšã¯ãĒãããĢå Ĩããã¨ããšãŋãŧããĸãã ãšã¯ãĒããã§åŋ čĻãĒããšãĻãŽããžããžãĒãĩãŧããšãéå§ã§ããžãã ããšããåŽčĄããåãŗåŽéãŽãĩãŧããšã¨éäŋĄããåŽäēããããTestcontainersããŦãŧã ã¯ãŧã¯ãããšãĻãã¯ãĒãŧãŗãĸãããããŽãĢåŊšįĢãĄãžãã ã¤ãžããããšãĻãŽãŗãŗãããããšãĻãŽããĒãĨãŧã ãããã¯ãŧã¯ãããŽäģããšãĻãŽããŽãįĸēåŽãĢåé¤ããããŽã§ãã ãããĻãã1ã¤ãŽåŠįšã¯ãããã°ãŠã ãĢãããĸãããŧãã§ãããããããŽå¨ããĢįŦčĒãŽæŊ蹥åãŦã¤ã¤ãŧãäŊæãå§ãããã¨ãã§ãããã¨ã§ãã ã ãããããĒãã¯ããããč¨ããããŽã§ããããį§ã¯ããŽįšåŽãŽããŧãŋãšããããˇã§ãããæã¤postgresãŗãŗãããæŦ˛ããã§ãã įš°ãčŋããĢãĒããžãããããĒãã¯ãããå§ãããã¨ãã§ããžãã
TestcontainersãĢã¯ããããĢäŊŋãããĸã¸ãĨãŧãĢããããããããžãã ã§ããããæŦåŊãĢč¤éãĒããŽãäŊããŽã¯æŦåŊãĢį°Ąåã§ãã ãããĻãäģæĨã§ã¯ããããŽåš åēããŠã¤ããŠãĒããããããã常ãĢæéˇããĻããžãã
Â
ããĸ: Testcontainers (25:40)
ã ããããããå°ãã ããčĻãããžãã ãģããŽå°ãåãĢčĻãĻãããŽã¨åãããã¸ã§ã¯ããĢæģããžãã ãããĻãããšãããŖãŦã¯ããĒãéãã¨ããããĢįĩąåããšãããããããšãĻãŽããšããåŽčĄãããåãĢãPostgresãŗãŗãããäŊæããĻããŧããšããŠããããKafkaãŗãŗãããäŊæããĻããŧããšããŠããããžãã ããŽPostgresãŗãŗãããčĻãã¨ããããNode SDKãäŊŋį¨ããĻããžãã PostgresãŗãŗãããäŊæããžãã ãšããŧããč¨åŽããããŧãŋããŧãšåæåãšã¯ãĒããããã¤ãŗãããĻãŗãããĻéå§ããžãã ããŽį´æãč§ŖæąēãããããčŠŗį´°ãæŊåēããĻããã¤ããŽį°åĸ夿°ãč¨åŽãããŗãŧãããŧãšãååžããĻæ´ģį¨ã§ããžãã ããã§ãããšãããŧãã¨ããŧãŋããŧãšãŽãĻãŧãļãŧåã¨ããšã¯ãŧããæŊåēããžãã ããã§č¯ãįšã¯ãTestcontainersããŦãŧã ã¯ãŧã¯ããããŠãĢãã§ããŧããã¨ãã§ãĄãŠãĢããŧããĢå Ŧéãããã¨ã§ãã ããããŖãĻãããšãã§ããŧã 5432 ãå Ŧéããã¨č¨ãŖãĻããžããããã㯠55017 ã§ããå¯čŊæ§ããããžãã ããŽãããå¤ããŽããšããä¸ĻčĄããĻåŽčĄãããã¨ãã§ããžãã ãããĻãKafkaãŗãŗãããčĩˇåããKafkaã¯ãŠãšãŋãĢã¤ããĻãåæ§ãŽããŽããããžãã ãããĻãæģãåãĢãåŽéãĢå ãĢé˛ãã§ããŗãŧããåŽčĄãããããĢåŋ čĻãĒãããã¯ãäŊæããžãã ãããĻããããããããããŽããšããŽ1ã¤ãčĻãĻããã¨ãã°ãæļč˛ģč ãäŊæããžãã ããããåŽéãĢčŖŊåãäŊãã¨ãã¯ãčĒåãæŦ˛ãããĄããģãŧã¸ãåŽéãĢå ŦéãããĻããããŠãããæ¤č¨ŧããžãã ãããĻãžããããã¯ããšãĻãæŠčŊããĻãããã¨ãæ¤č¨ŧãããã¨ãĢãĒããžãã å ãĢé˛ãã§ãããåŽčĄããžãããã
ããĻããããCLIããåŽčĄããããŽéãĢåŽéãĢããŽæ¨ĒãĢããDocker Desktop GUIãåŧãåēããĻããŗãŗãããŽčĩˇåãįĸēčĒã§ãããããĢããžãã åŽéãį§ã¯å ãĢé˛ãã§ãããã§ããŽãšãŋãã¯ãæããããã¨ãããå°ãį°ĄåãĢčĻããã¨ãã§ããžãã ããã§ããšããéå§ããã¨ããããŽãã°åēåã§ãŗãŗãããéå§ãããĻãããã¨ãããããDocker DesktopãããˇãĨããŧããĢã襨į¤ēãããĻãããã¨ãããããžãã ããããããããĢã¯ãããããŽãã°åēåããããžãã įžå¨ããããã°ãã°ãæåšãĢããĻããžãã ãããĻãžãããŗãŗãããåčģĸãããĻããžãã ããšããåŽčĄããĻããžãã ãããĻãåŽäēããã¨ãããããŽãŗãŗãããåé¤ããããã¨ãããããžãã ããŽæåžãŽTestcontainerãŗãŗããã¯ãįŠäēãã¯ãĒãŧãŗãĸãããããããĢäŊŋį¨ããããããčĒåįãĢæļãããã¨ãããããžãã
įš°ãčŋããĢãĒããžãããTestcontainersããŦãŧã ã¯ãŧã¯ãäŊŋį¨ããã¨ãããšãį°åĸã§ãŗãŗãããŽåãæ´ģį¨ã§ããžãã ãžããããŠãĻãļãĢéŖãŗčžŧãã¨ãããžããžãĒč¨čĒã§ãĩããŧããããĻããžãã ããĻãæãããĢãTestcontainer ãŗãŧããŽæ¸ãæšã¯č¨čĒãĢããŖãĻå°ãį°ãĒããžãã ãããĻãããŽįšåŽãŽč¨čĒãŽã¤ããŖãĒã ãäŋã¨ãã¨ããžãã ããã§ãããã§æåžãĢčŋ°ãšããã¨ã¯ãå¤ããŽããŧã ã¯ãDockerãžãã¯įšæ¨Šãĸãŧãã§DockerãåŽčĄã§ããĒãKubernetesããããäŊŋį¨ããĻããå¯čŊæ§ããããããCIį°åĸã§ãŗãŗãããčĩˇåã§ããĒãå¯čŊæ§ãããã¨ãããã¨ã§ãã
ããã§ãTestcontainers CloudãŽåēįĒã§ãããTestcontainers CloudãäŊŋį¨ããã¨ãåēæŦįãĢããããŽãŗãŗãããŽåŽčĄãã¯ãŠãĻãããŧãšãŽãĒãŊãŧãšãĢå§äģģã§ããžãã ããŽãããDocker ã§ Docker ãäŊŋį¨ããåŋ čĻããĒããĒãããã¤ããŠã¤ãŗãŽåŽå ¨æ§ãåä¸ããžãã åŽéãäģĨåãĢčĄãŖããŽã¨åãããšããåŽčĄã§ãããã°ãĢãåčģĸããĻTestcontainers CloudãäŊŋį¨ããã ãã§ãã ãããĻäģãį§ã¯åãããšããåŽčĄããžãã ãããĻãäģåã¯åŽéãĢã¯ãŠãĻãããŧãšãŽį°åĸãäŊŋį¨ãããã¨ãããããžãã ããŽãããããã§ã¯ããã¤ããŽããĢãé˛čĄããĻãããŽãããããžããããããˇãĨããŧãã§ããĸã¯ãˇã§ãŗã¯čĄãããĻããžããã įš°ãčŋããĢãĒããžãããTestcontainers CloudãäŊŋį¨ããã¨ãããããŽåŽčĄãã¯ãŠãĻãããŧãšãŽãĩãŧããšãĢå§äģģã§ãããããCIį°åĸããAIæŠæĸ°åĻįŋã¯ãŧã¯ããŧããĒãŠãŽGPUãåŋ čĻãĒå ´åãĢįšãĢåŊšįĢãĄãžãã
Â
ãĸããĒãŽãŗãŗããå (29:57)
ããã§ã¯ããĸããĒãąãŧãˇã§ãŗããŗãŗããåããæšæŗãĢã¤ããĻ芹ããžãããã ããĻãéįēã¨ããšããĢã¤ããĻ芹ããžããã ã§ã¯ãåŽéãĢãĸããĒãąãŧãˇã§ãŗãããŗããĢããĻããĢããããããã¤ããæēåããããĢã¯ãŠãããã°ããã§ããããããžããDocker ã¯ããããŠãŽãããĢčĄããŽãĢåŊšįĢãŖãĻãããŽã§ããããã ãžãæåãĢč§ĻããããŽã¯ãå¤ããŽããŧã ãããŽæ ãå§ããã¨ããæåã¯ããšãĻãŽããšãããŠã¯ããŖãšãĢåžããĒããã°ãĒããĒãã¨æããĻããã¨ãããã¨ã§ãã ãããĻãåæéēģįēãĢéĨããŽã¯æŦåŊãĢį°Ąåã§ãã į§ã¯ãå°ããĒå°ããĒ䏿Šãč¸ãŋåēããĻã大ä¸å¤Ģã ã¨ãããã¨ããåããŖãĻã¯ãŖãããããĻãããããŽã§ãã ã§ããããį§ãå¤ããŽããŧã ãĢæåãĢčĄããããĢå§ããĻãããŽã¯ããĸããĒããŗãŗãããĢå Ĩãããã¨ã§ãã ããĻãããã¯ãããã§ããåŋ čĻã¯ãããžããã æãæéŠåããåŋ čĻã¯ãããžããã ä¸įæå°ãŽįģåã§ããåŋ čĻã¯ãããžããã äŊããæŠčŊãããã ãã§ãã ããããŖãĻãæåãŽįŽæ¨ã¯ããĸããĒããŗãŗãããĢå Ĩãããã¨ã§ãã
ããŽåžããŠãŽãããĢčĒååããžãã? ããŽããããŗãŧãããããˇãĨããããŗãĢããŗãŧããŽããĢããéå§ã§ããžãã ãããĻããããCIãã¤ããŠã¤ãŗãĢįĩąåãããžãã ãžããããŽįģåãŽæ§į¯ãčĒååãããã¨ã§ãæéãŽįĩéã¨ã¨ããĢå¤åãčĻããĻãããããĢãĒããžãã ããŽåžãããããæéŠåãĢįĻįšãåŊãĻãžãã įģåãå°ãããéãããšãĒã ãĢãããĢã¯ãŠãããã°ãããŽãããĒãŠãĒãŠã ãããĻãããŖããˇãĨãæ´ģį¨ãããĒãŠãããžããžãĒãã¨ãčĄãŖãĻããžãã ãžãããģããˇã§ãŗå ¨äŊã¯ãããšãããŠã¯ããŖãšãŽæ§į¯ãĒãŠãĢįĻįšãåŊãĻãĻããžãã ãããĻããããããšãĻãæ¨ĒæãããããåããŖãĻčŋ°ãšãĻãããšãã§ãããįĩįšãŽãŗãŗããŠã¤ãĸãŗãšãŽããŧãēã¨ããĒãˇãŧãæēãããĻãããã¨ãįĸēčĒãããã¨čããĻããžãã ããããã°ãæåãŽããĢãã§ããŖãĻããå¤ããŽčåŧąæ§ãĒãŠãĢčēĢãããããããããžããã ã§ã¯ãããããŽããžããžãĒãšããããŽããããã§į§ããĄãåŠããããŧãĢã¯äŊã§ãã?
Â
Docker Init(31:41)
Docker Init ã¯ããŗãŗããåãŽåãįĩãŋãããŧããšããŠãããããããĢč¨č¨ãããããŧãĢã§ãã 7ã¤ãŽį°ãĒãč¨čĒããĩããŧãããĻãããããŽįšåŽãŽããã¸ã§ã¯ãããŠãŽč¨čĒã§ããããæ¤åēã§ããéå§ãĢåŊšįĢã¤Dockerfileã¨äŊæããĄã¤ãĢãæäžããžãã ããĻãå ãĢé˛ãã§ãããã¯åŽį§ã§ã¯ãĒããããããžããããå°ãĒãã¨ãããĒããĢč¯ã䏿Šãč¸ãŋåēããããĒããŽæ ãå§ããããŖãããä¸ããã§ãããã ãããĻããĄãããããã¯ããŧãĢãĢããĄã¤ãĢãˇãšãã å ãŽããĄã¤ãĢã ããĒãŽã§ããããã夿´ãå ããããããŧãšã¤ãĄãŧã¸ãåĨãŽã¤ãĄãŧã¸ãĢä礿ããããããã¨ãã§ããžãããããDockerãŽããšãããŠã¯ããŖãšã§ãã ããžãããã°ãįĩįšãŦããĢãããŧã ãŦããĢããããĻåäēēãŦããĢã§čãããããŽæ°ããé åãããããããã¨æããžãã įĸēããĢãä¸ãŽä¸ãĢã¯å¸¸ãĢããå¤ããŽããšãããŠã¯ããŖãšããããžãã ããŽããŦãŧãŗããŧãˇã§ãŗãæĨŊããã§ããã ããã°åš¸ãã§ãã ãããã¨ãããããžãã
Â
GitHub ãĸã¯ãˇã§ãŗ (32:18)
CIį°åĸã§éå§ããæēåãã§ãããããããæ¯æ´ããå¤ããŽããŧãĢã፿ããĻããžãã ã¤ãĄãŧã¸ãŽããĢãã¨ãããˇãĨãDocker Build Cloudã¨ãŽįĩąåãĢåŊšįĢã¤å ŦåŧãŽGitHub ActionsããããããããžããããããĢã¤ããĻã¯åžãģãŠčŠŗããčĒŦæããžãããDocker Scoutãããã§ãã Testcontainers CloudãĢã¤ããĻã¯ãå ãģãŠã芹ãããžããã ããŽãããTestcontainers CloudãäŊŋį¨ããĻååēĻããšããåŽčĄãããå ´åã¯ãããŽå¤ãããĩããŧããããããŽå ŦåŧãŽãĸã¯ãˇã§ãŗããããžãã ãžããGitLab CIį°åĸã§ããåŽéãĢããããŽGitHub ActionsãäŊŋį¨ããĻããäēēãčĻããå§ããĻãããGitLab CIã§ãGitHub ActionsãŽä¸é¨ãæ´ģį¨ã§ãããããĢãĒããžããã ãããĻããããããį§ãč¨åããããã¨ãŽ1ã¤ã§ãããããã¤ããŽį°ĄåãĒããŗãã¨ããšãããŠã¯ããŖãšã§ãã
Â
ã¯ã¤ãã¯ããŗã/ããšãããŠã¯ããŖãš (32:59)
ããĻãããã§æãä¸ãããã¨ãã§ãããã¨ã¯ããŖã¨ãããããããžãããå°ãéŖæŦ˛ããããã ãã§ãã ãžããããŽæ ãå§ããã¨ãããŠã¤ããŧãNPMãŦã¸ãšããĒããäžåéĸäŋãååžããåŋ čĻããããŽããSSHčŗæ ŧæ å ąããäžåéĸäŋãååžããåŋ čĻããããŽããčŗæ ŧæ å ąãåŋ čĻã ããĒãŠã¨č¨ããŽãä¸čŦįã§ãã ããããį§ãããĒããĢãĸããã¤ãšããããŽã¯ãįģåãĢį§å¯ãåĢããĒããã¨ã§ãã ããĢã ãˇãŧã¯ãŦãããäŊŋį¨ããĻããĢãæãĢãˇãŧã¯ãŦãããæäžããæšæŗããããžãã ãã ãã¤ãĄãŧã¸ãĢįŧãäģããĒãã§ãã ããã įģåãŽãŦã¤ã¤ãŧåã¨ããããåŽéãĢãŠãŽãããĢæ§æãããĻããããĢã¤ããĻã¯ãžã 芹ããĻããĒããã¨ã¯æŋįĨããĻããžãã ãˇãŧã¯ãŦããã 1 ã¤ãŽãŦã¤ã¤ãŧãĢé įŊŽããæŦĄãŽãŦã¤ã¤ãŧã§ãããŽããĄã¤ãĢãåé¤ããããã¨č¨ãã¨ããããããŽããĄã¤ãĢãåé¤ãããã¨ãĢãĒããžãã įĩåąãŽã¨ãããåŽéãĢã¯ãžã čŗæ ŧæ å ąãįēéããĻããžãã ã§ããããããŽįšãĢã¯ååæŗ¨æããĻãã ããã įģåãĢãˇãŧã¯ãŦãããåĢããĒãã§ãã ããã
äŋĄé ŧã§ããããŧãš ã¤ãĄãŧã¸ããéå§ããžã (ããã Microsoft ãæäžããããŽã§ãããã¨ãįĩįšãæäžããããŽã§ãããã¨ãéŠåãĒäŋĄé ŧããŧãšããéå§ããžã)ã
ããĢããšããŧ㸠ããĢããäŊŋį¨ããã¨ãããĢãæãŽäžåéĸäŋã¨ãŠãŗãŋã¤ã ãŽäžåéĸäŋãåéĸããæŦįĒį°åĸį¨ãŽã¯ãããĢå°ãããįĄé§ãŽãĒããããåŽå ¨ãĒã¤ãĄãŧã¸ãäŊæãããŽãĢåŊšįĢãĄãžãã ãããĻãžããäģåžãŽãģããˇã§ãŗã§ãããĢã¤ããĻãããĢæˇąãæãä¸ãããã¨ãã§ããžãã
ãžããå¯čŊãĒéãįģåãĩã¤ãēãå°ããããåŋ čĻããããžãã įģåãå°ãããģãŠãæŧãããåŧããããããŽãéããĒããå ãããšããŦãŧã¸ãšããŧãšãå°ãĒããĒããžãã ãããĻããããæ¯æ´ãã1ã¤ãŽæšæŗã¯ãããŖããˇãĨãŽäŊŋį¨ãäŋé˛ãããããĢããŦã¤ã¤ãŧãžãã¯åēæŦįãĢDockerfileãŽåŊäģ¤ãæ§é åãããã¨ã§ãã
ããĻãããããŽåãĸã¤ãã ã¯ããããã 5 åãžã㯠10 åãŽãģã¯ãˇã§ãŗã¨ããĸããããĻãããĢäģéããããšãĻãĢå¤ããã§ãããã ãããĢã¤ããĻã¯ãäģåžčŠŗããčĒŦæããžãã ããããããã§ãčæ Žããšãįšãããã¤ããããžãã ãããŽå¤ããåŠãããããŽããŧãĢãŽããã¤ãã
å ãĢčŋ°ãšããããĢãããĢããæ¯æ´ããããŧãĢãããããããDocker Build Cloudã§ãã Build Cloud ãŽčãæšã¯ãããĢããåŽčĄããããŗãĢããŧãĢãĢ ããˇãŗãŽããĢããŧãäŊŋį¨ãããŽã§ã¯ãĒããåēæŦįãĢã¯ãŠãĻãã§åŽčĄãããĻããããĢããŧãæ´ģį¨ã§ããã¨ãããã¨ã§ãã ããããŖãĻã5 äēēãŽããŧã ãããå ´åãã¯ãŠãĻã ããĢããŧãäŊŋį¨ããĻããã¨äģŽåŽããã¨ã1 äēēãŽããĢããĢããŖãĻãããŧã ãŽäģãŽå ¨åĄãæ´ģį¨ã§ããããŖããˇãĨãč¨åŽãããžãã ããã¯ãäģäēãããããŗãĢįŊį´ãŽįļæ ããå§ããCIį°åĸã§įšãĢåŊšįĢãĄãžãã ã§ã¯ãæ¯åįŊį´ãŽįļæ ããå§ããå ´åãäģĨåãŽããĢããŽããŖããˇãĨããŠãŽãããĢæ´ģį¨ã§ããžãã? ã¯ãŠãĻãããĢããŧã§ã¯ãããŽã¯ãŠãĻãããĢããŧã常ãĢåŽčĄãããĻãããããããããŽããŖããˇãĨãæã¤ãŽãĢåŊšįĢãĄãžãã
ãããĻããŗãŗããŠã¤ãĸãŗãšãæ¯æ´ãã2ã¤įŽãŽããŧãĢã¯Docker Scoutã§ãã Docker Scoutã¯ãįĩįšãŽããĒãˇãŧãč¨åŽããæŠčŊã ãã§ãĒããããŧãĢãĢãŽéįēį°åĸã§ããããŽããĒãˇãŧãåæã§ãããããĢãããããŽæŠčŊãæäžããžãã ããã§ã¯ãããã§å°ããčĻãããžãããã
Â
ããĸ (35:58)
VSCodeãĢæģããžãã ãããĻãããã§Dockerfileãéããžãã ããã§å¤ããŽæéãč˛ģããã¤ããã¯ãããžããããå°ãã ãčĻãããããĢãããĢããčĄããžãã ãããĻãããŽããĸãĸããĒãåŧãŗåēããV1ã¨ãããŋã°ãäģããžãã ãããĻæåžãŽįšã¯ããããããŽå ´æã§ããã¨ãããã¨ã§ãã ããĻãããŽããĢãã¯ãå ãģãŠããĢãããã°ãããĒãŽã§ããģãŧįŦæãĢčĄãããžãã ããŽããããããĢã¯ããŖããˇãĨãããåēåã夿°čĄ¨į¤ēãããžãã ãããããããĢããį§ãã§ãããã¨ã¯ãDocker ScoutãŽã¯ã¤ãã¯ããĨãŧãåŽčĄããĻããããããĢã¤ããĻãããĢčŠŗį´°ãååžã§ãããã¨ã§ãã ã§ããããScoutããããã¨ããĻãããã¨ã¯ãåēæŦįãĢį§ãŽįģåãåæããSBOM(ãŊãããĻã§ãĸé¨å襨)ãčĻãĻãįŽąãĢäŊãå ĨãŖãĻããããčĻããã¨ã§ãã ãŠãŽãããĒäžåéĸäŋããããžãã? ãŠãŽOSãããąãŧã¸ã§ãã? äģãĢãŠãŽãããĒãĸããĒãąãŧãˇã§ãŗãŽäžåéĸäŋããããžãã? ããããŽãããããĢåéĄã¯ãããžãã? ããããĢã¯ãŠãŽãããĒãĒãŧããŗãŊãŧãšãŠã¤ãģãŗãšãæˇģäģãããĻããžãã? ãžãããĸããĒãąãŧãˇã§ãŗčĒäŊã¯ãŠãŽãããĢæ§æãããĻããžãã? ãŗãŗããã¯ãããŠãĢãã§éãĢãŧããĻãŧãļãŧã¨ããĻåŽčĄãããããĢæ§æãããĻããžãã? ãããĢã¯ãäģãĢãå¤ããŽããĒãˇãŧãéĸäŋããĻããå¯čŊæ§ããããžãã ããããScoutãŽå¤§ããĒåŠįšãŽ1ã¤ã¯ãį§ãŽã¤ãĄãŧã¸éåą¤ãčĒčãããã¨ã§ãã ããããŖãĻãããŽå ´åãnodeīŧ20 ããããĢããããã¨ãčĒčã§ããããŽãŦããŧããįæããã¨ããĢãåéĄãįļæŋãããŽããããã¨ãåŽéãĢčĒåã§åéĄãå°å ĨãããŽããéįĨã§ããžãã?
ããã¯åŽãĢč¯ããŋã¤ããŗã°ã§ãã ãããĻãããã§į§ãŽįģåãĢåéĄããããã¨ãããããžãã ããĻãįžå¨ãčåŧąæ§ã¯éĢ 7 ãčåŧąæ§ 8 ä¸ã 108 äŊã§ãã ããĻãããĒããããžãã ãããĻãããã¯į§ãĢããæããĻãããžããããŧã:20ã¤ãĄãŧã¸ãį§ãæ´ģį¨ããĻããåēæŦã¤ãĄãŧã¸ã¯ãéĢãä¸ã4ã107äŊ3æãŖãĻããžãããį§ã¯å¤ããŽåéĄãåãįļãã§ããžãã ããŽãããããŧãšã¤ãĄãŧã¸ã夿´ããã¨ãããŧãšã¤ãĄãŧã¸ã夿´ããã ãã§įēįãã夿´ãåēæŦįãĢæããĻãããžãã ãžããįēčĻãããCVEãĢã¤ããĻãŽčŋŊå ãŽčŠŗį´°ãååžã§ããžãã åŽéãį§ã¯å ãĢé˛ãã§ããããæŦåŊãĢéãåŽčĄããžãã ãããĻããããĢãããįēčĻãããįšåŽãŽčåŧąæ§ãĢã¤ããĻčŠŗããčĒŦæããžãã ããã§ã¯ãããããĢéĸéŖäģããããĻããäŋŽæŖããŧã¸ã§ãŗã¨ãããããããå°ãčŠŗããįč§ŖãããããŽãĒãŗã¯ãį¤ēããžãã ããŽä¸æšã§ãGUIã§ãåãããŽãčĻããã¨ãã§ããåæãčĄããããŽįšåŽãŽįģåã§äŊãčĩˇããŖãĻããããįĸēčĒã§ãããã¨ãį¤ēããã¨ãã§ããžãã ããã¯ãį§ãé˛éŗãčĄãŖãĻãããããããˇãŗãįžå¨äģãŽå¤ããŽåĻįãčĄãŖãĻãããããé常ãããå°ãéˇããĒãã¨æããžããããããĢãããCLIã§čĻãĻããå¤ããŽãã¨ãĢ寞ããĻGUIããŧãšãŽãĸãããŧããå¯čŊãĢãĒããžãã ããŽãããčåŧąæ§ãã¯ãĒãã¯ããĻãããŽäŋŽæŖæ¸ãŋããŧã¸ã§ãŗãįĸēčĒã§ããžãã įģåãäŋŽæŖããįģåãããæēæ ãããæšæŗãĢã¤ããĻãŽæ¨åĨ¨äēé ã襨į¤ēãããžãã
ããĻãããã¯ããã§ãããĢįĩããã¯ãã§ãã ãããĻãį§ãã§ãããã¨ãŽ 1 ã¤ã¯ãããŽįšåŽãŽããĢãã§ã¯čĄããĒããŖããã¨ã§ãããåŽéãĢ SBOM ãããĢãããĻã¤ãĄãŧã¸ãĢãĸãŋããã§ãããã¨ã§ãã ããããŖãĻããããå°ãé ããĒãįįąã¯ãããŽãĒããˇã§ãŗãåĢããĒããŖãããã§ãã ããããŖãĻãåēæŦįãĢã¯ããã§åæãčĄãããŗãĢSBOMãįæããåŋ čĻããããžãããããĢãæãĢä¸åēĻįæãããã¨ãã§ããžãã ããããįš°ãčŋããĢãĒããžãããåēæŦįãĢã¯į§ãŽã¤ãĄãŧã¸ãŽįĨå ãããšãĻčĻããã¨ãã§ããã¨ã¯ãšããŦãšãŽ 4ãĢåéĄããããã¨ãããããžãã17 ããããĢã¯3ã¤ãŽį°ãĒãCVEãéĸéŖäģããããĻãããã¨ãããããžãã ããŽįšåŽãŽããŽã¯į§ãĢãããĢã¤ããĻãŽčŠŗį´°ãä¸ãã大ä¸å¤Ģãį§ãå°ãĒãã¨ãčĄãåŋ čĻãããåēåŽããŧã¸ã§ãŗãæããĻãããžã 4ã20ã ãã㯠4ã¨č¨ãŖãĻããžãã19ã2 ãããĻãããŽæåžãŽããŽã¯ 4ã¨č¨ããžãã17ã3ã ããããŖãĻãããŽįĨčãããã°ããŗãŧãããŧãšãĢæģããã¨ãã§ããžãã ãããąãŧã¸ãŽJSONã夿´ããĻãExpressã 4ãĢæ´æ°ããåŋ čĻãããã¨ã ãč¨ããã¨ãã§ããžãã20ã0ã ããšãĻãŽããšããåæ§į¯ããĻååæããåŽčĄããããããšãĻãåŧãįļãæŠčŊããĻãããã¨ãįĸēčĒãããã§ããžãã ã§ããããScoutã¯ãåąéããåãĢããšãĻãčŋŊ补ãããŽãĢåŊšįĢãĄãžãã
ããĻãBuild CloudãĢã¤ããĻ芹ããžããããããŽãŗãŧãããããˇãĨããã¨ãåŽéãĢã¯2ã¤ãŽį°ãĒãã¯ãŧã¯ãããŧãããĒãŦãŧããããŗããããã¨ãĢããã2ã¤ãŽį°ãĒãã¯ãŧã¯ãããŧããããã¨ãããããžãã ããŦãŧãŗãĒ GitHub ãĸã¯ãˇã§ãŗã ãã§æ§į¯ãããããŽã¨ãDocker Build Cloud ãäŊŋį¨ããĻããããŽã ãžããDocker Build Cloud ãäŊŋį¨ããããĢãã 30į§ãŽæéæ ã§ãããĒãŗã°ããĻããæéãĢã¯éãããããã¨ãããããžãã ããŽæåžãŽããŽã¯äžåéĸäŋã夿´ãããããå°ãæéãããããžããããDocker Build CloudãäŊŋį¨ããĒãå ´åã¯ãį´2åããããžããã ããŽãããããĒãæéãããããããã¯ããĢããåŽčĄããĻããã ããŽã¯ãŧã¯ãããŧã§ãã įš°ãčŋããĢãĒããžãããTestcontainers Cloudã§ãåããã¨ãč¨ããžããããŗãŗãããŽčĩˇåããŗãŗãããŽåŽčĄãĒãŠã§ãã
Â
æĻčĻ (41:16)
įš°ãčŋããĢãĒããžããããããããšãĻãŽį°ãĒããĩãŧããšããį§ãŽéįēããŠã¯ããŖãšãåįåãããŽãĢåŊšįĢãŖãĻããžãã Docker DesktopãDocker HubãDocker ScoutãDocker Build CloudãTestcontainers CloudãĒãŠãŽDockerãĩãŧããšãšã¤ãŧãã¯ããŗãŗãããäŊŋį¨ããéįēããŗãŗãããäŊŋį¨ããããšããããĢãã¨äŋčˇããããĻæįĩįãĢã¯ãŗãŗãããäŊŋį¨ãããããã¤ãæ¯æ´ãããããĢč¨č¨ãããĻããžãã ãããĻããããããšãĻãDockerãĩãŧããšãšã¤ãŧãã§ãã įš°ãčŋããĢãĒããžãããããŽæ ãĢįããããčŋãã§ãããã¨ãåŦããæããžããŽã§ãäģåžãŽãģããˇã§ãŗãĢãæŗ¨įŽãã ããããžããããããŽãã¨ãåŽéãĢčĄãæšæŗãããæˇąãæãä¸ããåŽčˇĩããĻåĻãļãã¨ãã§ããå ´æããčϧãã ããã ããã§ã¯ããããããéĄãããããžãã ãããããĒããĢã¨ãŖãĻæįã§ãããã¨ãéĄãŖãĻããžãããããĻį§ããĄã¯ããĒããŽæ ããĩããŧããããŽãæĨŊããŋãĢããĻããžãã
Â
ãããĢčŠŗãã
- ãããĢãŧã¯åããĻã§ãã? å§ããžãããã
- æŗ¨įŽãŽãŦã¤ãã§DockerčŖŊåãæˇąãæãä¸ããžãã
- Docker Newsletter ãčŗŧčĒããĻãã ããã
- Docker ããšã¯ããããŽææ°ãĒãĒãŧãšãå Ĩæããžãã
- čŗĒåããããžãã? Docker ãŗããĨãããŖããæäŧãããžãã