
ACSäºæ¥é¨ã®ç§æ¾¤ã§ãã
2026å¹´1ææ«ãActionsã§ä½¿ããã©ã³ãã¼ã«ã¤ãã¦GitHubããå¬ããã¢ãããã¼ããçºè¡¨ããã¾ããã
ããã¾ã§ãã©ã¤ãã¼ããªãã¸ããªã§arm64ç°å¢ãå©ç¨ããã«ã¯ãã³ã¹ããéç¨é¢ã§ã®ãã¼ãã«ãããã¾ããããä»åã®ã¢ãããã¼ãã§ãæ¨æºã©ã³ãã¼ãã¨ãã¦æè»½ã«é¸æã§ããããã«ãªãã¾ããã
ä»åã¯ãããã¾ã§ã®èª²é¡ãã©ãæ¹åãããã®ãç°¡åã«ç´¹ä»ãã¾ãã
ããã¾ã§ã®èª²é¡
ããã¾ã§GitHub Actionsï¼ãã©ã¤ãã¼ããªãã¸ããªï¼ã§arm64åãã®ãã«ããè¡ãã«ã¯ã主ã«2ã¤ã®é¸æè¢ãããã¾ãããããããããããã«å®éç¨ä¸ã®èª²é¡ãããã¾ããã
â QEMUã«ããã¨ãã¥ã¬ã¼ã·ã§ã³
amd64ã®ã©ã³ãã¼(ubuntu-latestç)ä¸ã§docker/setup-qemu-actionã使ããã¨ãã¥ã¬ã¼ã·ã§ã³çµç±ã§arm64ãã«ããè¡ãææ³ã§ãã
課é¡: è¨å®ã¯ç°¡åã§ä¾¿å©ã§ãã䏿¹ãã¨ãã¥ã¬ã¼ã·ã§ã³ã®ã³ã¹ããé«ãããã«ãæéãå¤§å¹ ã«ä¼¸ã³ã¾ããç¹ã«ä¾åé¢ä¿ãå¤ãã¢ããªã±ã¼ã·ã§ã³ã§ã¯1æé以ä¸ããããã¨ããããçç£æ§ä½ä¸ã«ã¤ãªãã£ã¦ãã¾ããã
â¡ macOSã©ã³ãã¼ãå©ç¨
GitHubã§ã¯ä»¥åããmacOSã©ã³ãã¼ï¼macos-latestçï¼ãæä¾ããã¦ãã¾ããã
課é¡: macOSä¸ã§Dockerãåããã«ã¯Colimaãªã©ã®ã³ã³ããã©ã³ã¿ã¤ã ãèªåã§ã»ããã¢ããããå¿ è¦ãããã¾ããããããGitHub Actionsã®ä»®æ³ãã·ã³ä¸ã§ããã«ä»®æ³åãè¡ããVM in VMãã®å¶ç´ã«ãããããã©ã¼ãã³ã¹ãåºãªãã£ãããåä½ãä¸å®å®ã ã£ããã¨ãéç¨ãã¼ãã«ãé«ããã®ã§ããã
è£è¶³: Large Runnerã«ã¤ãã¦
å®ã¯ãLarge Runnerãã使ãã°ä»¥åããUbuntuã®arm64çã¯å©ç¨å¯è½ã§ãããããããLarge Runnerã¯ã使ã£ãåã ã課éãã®å²é«ãªãã©ã³ã§ãããå°è¦æ¨¡ãªããã¸ã§ã¯ããã³ã¹ãæã«å³ããç¾å ´ã§ã¯æãåºãã«ããåå¨ã§ãããä»åã®ã¢ãããã¼ãã¯ããããStandard Runnerï¼æ¨æºã©ã³ãã¼ï¼ã¨ãã¦å©ç¨å¯è½ã«ãªã£ããã¨ãç»æçã¨ããã¾ãã
ãã¤ãã£ãç°å¢ã«ããé«éå
ä»åã®ã¢ãããã¼ãã«ããã以ä¸ã¹ããããã®ããã«ã¯ã¼ã¯ããã¼å®ç¾©ã夿´ããã ãã§ãã¤ãã£ããªarm64ç°å¢ãå©ç¨å¯è½ã§ãã ï¼GitHubãã¹ãããã©ã³ãã¼ã§å©ç¨å¯è½ãªã¤ã¡ã¼ã¸ä¸è¦§ã¯ãã¡ãï¼
jobs: build-arm64: # ãã¤ãã£ããªarm64ã©ã³ãã¼ãæå®(QEMUã»ããã¢ããä¸è¦) runs-on: ubuntu-24.04-arm steps: - uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v6 with: context: . push: true # ãã©ãããã©ã¼ã ã§arm64æå® platforms: linux/arm64 tags: ghcr.io/${{ github.repository }}:latest-arm64
徿¥ã®æ¹æ³ã¨æ¯è¼ããã¡ãªãã
- ãã«ãé度ã®åçãªåä¸: ã¨ãã¥ã¬ã¼ã·ã§ã³ãªãã®ãã¤ãã£ããã«ãã«ãªããããQEMUå©ç¨æã«æ¯ã¹ã¦æ°åãåæ°åã®é«éåãæå¾ ã§ãã¾ãã
- ã³ã¹ãæé©å: Standard Runnerã®æéä½ç³»ã§å©ç¨ã§ãããããLarge Runnerãå¥ç´ããã»ã©ã§ã¯ãªãããã¸ã§ã¯ãã§ãå°å ¥å¯è½ã§ãã
å®éã«ãã¼ã ã§éçºãã¦ããTypescriptã¢ããªã®ã¤ã¡ã¼ã¸ãã«ãæéãå¤§å¹ ã«ç縮ããã¾ãã
å
ã
: 50åçµã£ã¦ãçµããæ°é
ããªãã£ããããã£ã³ã»ã«ã»ã»ã»ï¼amd64çã¯æ°åã§çµäºï¼
ä¿®æ£å¾: 5åç¨åº¦ã§çµããããã«

ãã¾ãï¼ãã«ããã©ãããã©ã¼ã ã¤ã¡ã¼ã¸ã«ã¤ãã¦
ãã«ããã©ãããã©ã¼ã ã¤ã¡ã¼ã¸ã¨ã¯ãåä¸ã®ã¤ã¡ã¼ã¸ã¿ã°ï¼ä¾ï¼:latestï¼ã§ãããªãããå®è¡ç°å¢ã®OSãã¢ã¼ããã¯ãã£ã«å¿ãã¦æé©ãªãã¤ããªãèªåçã«é¸æã»å®è¡ã§ããä»çµã¿ã§ãã(Multi-platform | Docker Docs)
éçºç°å¢ã¨ãã¦Apple Siliconï¼Mã·ãªã¼ãºãããï¼æè¼ã®Macãå©ç¨ãã¦ããå ´åãRosettaã«ããã¨ãã¥ã¬ã¼ã·ã§ã³ã§amd64ã¤ã¡ã¼ã¸ãåä½ããããã¨ãå¯è½ã§ãããCPUããã¼ãªã¯ã¼ã¯ãã¼ãã稼åããããã¨ããã¨åä½ãä¸å®å®ã»ä½éã«ãªãã¾ãã
linux/arm64 ã¤ã¡ã¼ã¸ããã¤ãã£ããã«ããã¦é å¸ãããã¨ã§ããããã®ç°å¢ã§ãå®å®ãã¤é«éã«ã³ã³ãããåä½ããããã¨ãå¯è½ã«ãªãã¾ãã
ãã«ããã©ãããã©ã¼ã ã¤ã¡ã¼ã¸ããã«ãããã«ã¯ï¼
Dockerå ¬å¼ï¼Distributed Buildï¼ã§ã¯ãamd64ã¨arm64ããããã®ã©ã³ãã¼ã§ä¸¦åã«ãã«ããå®è¡ããæå¾ã«ããããçµ±åãããããã§ã¹ãã使ããææ³ãæ¨å¥¨ããã¦ãã¾ãã
- ubuntu-latest (amd64) ã§ãã«ãï¼Push
- ubuntu-24.04-arm (arm64) ã§ãã«ãï¼Push
- docker buildx imagetools create ã§1ã¤ã®ã¿ã°ã«ã¾ã¨ãã
ããã«ãããã¦ã¼ã¶ã¼ã¯ docker pull ããã ãã§ãèªåã®ç°å¢ã«æé©ãªã¤ã¡ã¼ã¸ãèªåã§åå¾ã§ããããã«ãªãã¾ãã
å©ç¨å¯è½ãªãã©ãããã©ã¼ã ã確èªãã
èªåã使ã£ã¦ããã¤ã¡ã¼ã¸ãã©ã®ãã©ãããã©ã¼ã ã«å¯¾å¿ãã¦ãããã¯ã以ä¸ã®ã³ãã³ãã§ç°¡åã«ç¢ºèªã§ãã¾ãã
docker manifest inspect ghcr.io/your-repo/your-app:latest
試ãã«postgresã®å
¬å¼ã¤ã¡ã¼ã¸ã確èªãã¦ã¿ãã¨ãlinux/amd64,linux/arm64ãå«ããè¤æ°ã¢ã¼ããã¯ãã£ã«å¯¾å¿ãã¦ãããã¨ããããã¾ã
$ docker manifest inspect postgres { "schemaVersion": 2, "mediaType": "application/vnd.oci.image.index.v1+json", "manifests": [ { "mediaType": "application/vnd.oci.image.manifest.v1+json", "size": 3439, "digest": "sha256:2ccc3d98b960df5ed1ee2d32d3d5338a3c688cf899c0e951ce6d45fb07395abc", "platform": { "architecture": "amd64", "os": "linux" } }, ã»ã»ã»(ç¥)ã»ã»ã» { "mediaType": "application/vnd.oci.image.manifest.v1+json", "size": 3441, "digest": "sha256:36f212504f71344d58644644fbf325d40e0b36b091ae8c1ed9a567a77a430320", "platform": { "architecture": "arm64", "os": "linux", "variant": "v8" } }, ã»ã»ã»(ç¥)ã»ã»ã» ] }
ã¾ã¨ã
ãã©ã¤ãã¼ããªãã¸ããªã§ãarm64æ¨æºã©ã³ãã¼ãæä¾ããããã¨ã«ãããããã¾ã§ãã¬ã¼ããªãã¨ãªã£ã¦ãããã«ãé度ã»ã³ã¹ãã®ãã©ã³ã¹ãåçã«æ¹åããã¾ããã
ãã«ãæéã®é·ããLarge Runnerã®ã³ã¹ãã«æ©ã¾ããã¦ããæ¹ã¯ãã²ubuntu-24.04-armã©ã³ãã¼ã®å©ç¨ãæ¤è¨ãã¦ã¿ã¦ãã ããã
ACS äºæ¥é¨ã®ãç´¹ä»
ç§é ACS äºæ¥é¨ã¯ã¯ã©ã¦ããã¤ãã£ãæè¡ãAzure AI ãµã¼ãã¹ãPlatform Engineering ãªã©ãæ´»ç¨ããæ»ãã® DX æåã«åããéçºè
ä½é¨ã®åä¸ã»å
製åã®ãæ¯æ´ããã¦ããã¾ãã
www.ap-com.co.jp
www.ap-com.co.jp
ã¾ããä¸ç·ã«åãã¦ããã ãã仲éãåéä¸ã§ãï¼
ä»å¹´ãã¾ã ã¾ã çµç¹è¦æ¨¡æ¡å¤§ä¸ãªã®ã§ããè峿ã£ã¦ããã ãã¾ããããã²ã声ãããã ããã
www.ap-com.co.jp