binfmt를 이용해 다양한 아키텍쳐의 이미지를 A1에 올리기
안녕하세요!
전에 제가 알려드렸던 binfmt를 기억하시는지 모르겠는데요.
해당 이미지는 qemu를 기반으로 여러 아키텍쳐를 도커로 돌려줄수있는 에뮬레이터인데요!
사용방법이 간단하지만 현재 사용중인 서비스들을 영향을 주고싶지않아서 기다렸다가
추가로 오라클A1를 성공하면서 Easypanel의 여러 템플렛들을 써보고 싶어서 설치했습니다!
특히 저는 mattermost의 프로젝트 매니징를 꼭 써보고 싶었습니다.
(disclaimer) 역시 가상화다보니 안정성에 문제가 있을지도 모릅니다. 저도 테스트해보고 알려드리겠습니다.
먼저 기본 로드율입니다 매터모스트만 올라가있는데 로드가 0-11까지 뜹니다. 역시 qemu기 때문에 로드율이 제법됩니다. 사실 해당 서버는 매터 모스트와 여러가지 테스트용으로만 사용하기에 오라클의 정지를 피하기 좋은 로드율이라고 보여집니다!
git: https://github.com/tonistiigi/binfmt
도커의 기본은 root를 사용하지 않는 것입니다 저도 귀찮아서 매번 사용하지만
로그인된 유저를 docker와 sudo유저를 세팅해주시는거 잊지마세요~
프로젝트 파일을 받을 곳으로 이동해줍니다
"cd /home/%username%/git"
해당 프로젝트를 클론해줍니다.
"git clone https://github.com/tonistiigi/binfmt.git"
해당 폴더로 이동해줍니다
"cd /home/%username%/git/binfmt/"
빌드해줍니다!
"docker buildx bake"
여러 오류가 생기는데 무시하셔도됩니다.
테스트 이미지를 올려봅니다
""REPO=myuser/binfmt docker buildx bake --load mainline
docker run --privileged --rm myuser/binfmt"
아래와 같은 메시지가 나오면 성공!
"
{
"supported": [
"linux/amd64",
"linux/arm64",
"linux/riscv64",
"linux/ppc64le",
"linux/s390x",
"linux/386",
"linux/arm/v7",
"linux/arm/v6"
],
"emulators": [
"qemu-aarch64",
"qemu-arm",
"qemu-i386",
"qemu-ppc64le",
"qemu-riscv64",
"qemu-s390x"
]
}
"
인스톨하시면됩니다
"docker run --privileged --rm tonistiigi/binfmt --install all"
또는
"docker run --privileged --rm tonistiigi/binfmt --install arm64,riscv64,arm"으로 필요한것만 설치해줍니다.
끝입니다...너무 간단하죠?!
A1에 올렸을때 시간이 좀걸려서 안되는줄 알았더니 재부팅을 하지 않더라도 바로 올라오더군요!
그나저나 오라클 A1에 kvm 가속이 지원되는지 잘 모르겠네요..
오호... easypanel로 올리신것같아서 어떤걸 변경하신건지 해서요
mattermost는 기본적으로 arm용 이미지가 없습니다ㅠㅠ
mattermost를 어떻게 가지고 놀면 좋을지 궁리해봐야겠습니다.
전 루트에 크론탭으로 이렇게 설정해주었습니다.
cmt alert