해결된 질문
작성
·
414
1
안녕하세요. GitHub Actions 관련 실습 중이었는데, 아래와 같은 에러가 발생했습니다.
ERROR: failed to solve: node:14: no match for platform in manifest: not found
154Error: buildx failed with: ERROR: failed to solve: node:14: no match for platform in manifest: not found
일단은 platforms
를 제거해서 해결했는데요.
platforms 관련하여 검색해 알아보니 특정 OS 에 최적화하는 옵셔널한 값으로 넣으면 좋고 안넣어도 괜찮은 그냥 그런 것으로 소개되고 있더라고요
제 질문은 아래와 같은데요.
platforms 를 지워서 GitHub Actions 가 성공했는데, 이렇게 실습해도 되나요?
실무에서는 보통 platforms 를 작성하는게 관행인가요?
답변 2
0
서진규님 안녕하세요. 데브위키입니다.
네 말씀해주신 대로 platforms에 내용을 기재해 주셔야 합니다..!
platforms: 필드를 기재하시는 이유는, 환경이 두 개가 존재하기 때문입니다.
환경 1: 파이프라인이 실제로 실행되어 이미지를 빌드하는 깃허브 소유의 OS환경
환경 2: 이미지를 다운받아 실행하는 실습PC 환경
환경 1과 환경2의 OS환경(정확히는 커널)이 다를 경우 빌드한 이미지가 제대로 실행되지 않습니다.
그래서 platforms를 기재해서 이미지가 정상적으로 실행될 수 있도록 기재해 주시는 것입니다 😀
정리하자면 linux/arm64/v8 가 서진규님의 OS 커널 환경인 것이고, 깃허브의 환경에서 빌드할 때 잘 실행될 수 있도록 플랫폼을 기재해 주시는 것입니다.
강의 들으시면서 더 궁금하신 부분이 있으시면 편하게 질문해주세요!
0
결국 platforms
가 없으니 manifest 에서 해당하는 플랫폼인 linux/arm64/v8
를 못찾았다고 뭐라해서 platforms: linux/arm64/v8
를 추가해서 해결했습니다..!
특정 OS 환경에서 컨테이너 실행하려면 platforms 를 잘 지정해두어야 하는거군요..!