éã®å¼¾ä¸¸
以ä¸ã§ãã£ãã·ã¥æ´»ç¨ããã«ããPush ããããªã«è¡ã£ã¦ããã¾ãã
$ docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS # Docker Hub ã ECR ã«ãã°ã¤ã³ $ export DOCKER_CLI_EXPERIMENTAL=enabled # Buildxãæå¹ã«ãã $ docker buildx create --use --driver docker-container # ãã«ãã¼ã使(ããããªãã¨--pushãªãã·ã§ã³ã使ããªã) $ docker buildx build \ --tag $IMAGE:latest \ # ã¿ã°ãä»ä¸ --cache-from type=registry,ref=$IMAGE:cache \ # ãã£ãã·ã¥ã®Pullå ãæå®(ã¬ã¸ã¹ããªãæå®) --cache-to type=registry,ref=$IMAGE:cache,mode=max \ # ãã£ãã·ã¥ã®Pushå ãæå®(ã¬ã¸ã¹ããªãæå®)ãmode=maxã«ããä¸éã¤ã¡ã¼ã¸ã®ãã£ãã·ã¥ãå«ãã --push \ # æçµã¤ã¡ã¼ã¸ã®Pushãè¡ã .
ã¯ããã«
ããã¾ã§ãCI ã§ã®ãã«ãã¹ãã¼ã¸ãã«ãã®ãã£ãã·ã¥æ´»ç¨ã«ã¤ãã¦ãã¾ãã¾ãªè¨äºãæ¸ãã¦ãã¾ããã
キャッシュのためにDockerビルドで中間イメージをタグ付けしレジストリにPushする - 🤖
GitHub Actionsを例にCI環境でのマルチステージビルドのキャッシュの活用について🐳 - 🤖
ãããã§ã¯ä¸éã¹ãã¼ã¸ã®ãã£ãã·ã¥ã«è¦å´ãã¾ããã åã ã®ã¹ãã¼ã¸ã«ã¿ã°ãä»ä¸ãåã ã®ã¹ãã¼ã¸ã Push ãã¦ãã¦ãé¢åããããå¯èªæ§ãä½ããªã£ã¦ãã¾ããã
Buildx
ã®ããã¥ã¡ã³ããèªãæ©ä¼ããããç°¡åã«ãã«ãã¹ãã¼ã¸ãã«ãã§ãã£ãã·ã¥ãæ´»ç¨ã§ããããã§ããã
ãã®æ©è½ã¯Docker 19.03 ããå©ç¨å¯è½ã§ãã
Buildx ã¨ã¯
Docker Buildx 㯠Docker ã³ãã³ããæ¡å¼µãã CLI ãã©ã°ã¤ã³ã§ãããMoby BuildKit ãã«ãã¼ãã¼ã«ãããã«ããæä¾ãããæ©è½ã«å®å ¨å¯¾å¿ãããã®ã§ãã Docker ãã«ãã¨åæ§ã®ã¦ã¼ã¶ã¼æä½ãæä¾ããããã«ã¹ã³ã¼ãåããããã«ãã¼ã¤ã³ã¹ã¿ã³ã¹ãè¤æ°ãã¼ãã¸ã®åæãã«ããªã©ãæ°å¤ãã®æ°æ©è½ãæä¾ãã¾ãã
å
ã
ãDocker ã«ã¯ BuildKit ã®ä¸é¨ã®æ©è½ã¯å«ã¾ãã¦ãã¾ããã
ããããBuildx ãå©ç¨ãããã¨ã§ãBuildKit ã®å
¨ã¦ã®æ©è½ãå©ç¨ã§ãã¾ãã
Buildx ãbuildkitd
ã¨ãã BuildKit ãã¼ã¢ã³ãã³ã³ããã§ç«ã¡ä¸ãã¦ããã§ãã«ããè¡ããã¨ã§å®ç¾ãã¦ãã¾ãã
Buildx ãªãã§ BuildKit ã使ããã¨ããã¨ã--cache-from
ãªãã·ã§ã³ã¯å©ç¨ã§ãã¾ããã--cache-to
ãªãã·ã§ã³ã¯å©ç¨ã§ãã¾ããã§ããã
Buildx ãå©ç¨ããã¨ã--cache-to type=registry,ref=$IMAGE:cache,mode=max
ã¨æ¸ããã¨ã§ä¸éã¹ãã¼ã¸ã®ãã£ãã·ã¥ãå«ãã¦å¤é¨ã¬ã¸ã¹ããªã« Push ã§ãã¾ãã
以ä¸ã§ãã£ãã·ã¥æ´»ç¨ããã«ããPush ããããªã«è¡ã£ã¦ããã¾ãã
$ docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS # Docker Hub ã ECR ã«ãã°ã¤ã³ $ export DOCKER_CLI_EXPERIMENTAL=enabled # Buildxãæå¹ã«ãã $ docker buildx create --use # ãã«ãã¼ã使(ããããªãã¨--pushãªãã·ã§ã³ã使ããªã) $ docker buildx build \ --tag $IMAGE:latest \ # ã¿ã°ãä»ä¸ --cache-from type=registry,ref=$IMAGE:cache \ # ãã£ãã·ã¥ã®Pullå ãæå®(ã¬ã¸ã¹ããªãæå®) --cache-to type=registry,ref=$IMAGE:cache,mode=max \ # ãã£ãã·ã¥ã®Pushå ãæå®(ã¬ã¸ã¹ããªãæå®)ãmode=maxã«ããä¸éã¤ã¡ã¼ã¸ã®ãã£ãã·ã¥ãå«ãã --push \ # æçµã¤ã¡ã¼ã¸ã®Pushãè¡ã .
å®éã« GitHub Actions ã§ä½¿ç¨ãã¦ããä¾ã¯ä»¥ä¸ã®ããã«ãªãã¾ãã
GitHub Actions ã§ã¯ããã§ Buildx ãå©ç¨ã§ãã¾ãããã AWS CodeBuild ã§ã¯ Buildx ã使ãã¾ããã§ããã 以ä¸ã®ããã«ãã¦ãCLI ãã©ã°ã¤ã³ãå°å ¥ããå¿ è¦ãããã¾ããã
$ export DOCKER_BUILDKIT=1 $ docker build --platform=local -o . git://github.com/docker/buildx $ mkdir -p ~/.docker/cli-plugins $ mv buildx ~/.docker/cli-plugins/docker-buildx
ãã®å¦çã«ãããªã¼ãã¼ãããã大ããã®ã§ãAWS CodeBuild ã§ã¯ Buildx ã使ãã®ã¯å¾®å¦ã§ããã
CodeBuild ã®ãã¼ã¹ã¤ã¡ã¼ã¸ã«æåãã Buildx å ããã°ããã®ã§ã¯ã¨æãã¾ãããã
Unfortunately, we won't be adding any experimental features.
ã¨è¨ããã¾ããã