>백엔드 개발 >Golang >MacOs에서 ko 로컬 이미지 게시 수정

MacOs에서 ko 로컬 이미지 게시 수정

王林
王林원래의
2024-07-22 22:43:32727검색

Fixing ko local image publishing on MacOs

전문:

저는 여전히 Docker 데스크톱을 사용하여 MacBook Air에서 컨테이너를 실행하고 있습니다. 나는 Colima가 있다는 것을 알고 있지만 전환하여 결과를 처리할 시간이 없습니다.
또한 최근에는 Go 앱을 컨테이너화하기 위해 ko를 사용하기 시작했습니다.

코는 훌륭하지만...

I love ko - 배포되지 않은 안전하고 슬림한 이미지를 구축합니다. 그러나 한 가지 문제가 있습니다. 기본적으로 ko 빌드는 결과 이미지를 원격 레지스트리에 푸시합니다.
지속적인 전달에는 괜찮지만 실험을 많이 하고 내가 만든 모든 쓰레기를 항상 원격에 게시하고 싶지는 않습니다. 네트워크 대역폭과 이미지 저장을 고려하려고 노력합니다.

그래서 대신 로컬 이미지 저장소에 이미지를 구축하고 싶습니다.
ko build 를 사용하면 가능합니다. -엘
MacO에서는 다음과 같은 문제로 인해 실패했습니다.

2024/07/22 15:52:50 Loading otomato/myapp:717e6196339c956bc878bd58f5ab8244a709dc0510051f9e6df72620f28a2aaa
2024/07/22 15:52:50 daemon.Write response:
Error: failed to publish images: error publishing ko://github.com/otomato/myapp: error loading image: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Docker 데몬 호출

ko 내부의 docker 클라이언트가 표준 소켓의 Docker 데몬에 연결하려고 시도했지만 실패했습니다.

이 오류에 대해 인터넷 검색을 시도했지만 아무것도 찾지 못했습니다. 그래서 제가 직접 해결하기로 했습니다.
문제는 다음과 같습니다. MacOS에서 Docker 소켓은 표준 /var/run/docker.sock이 아닙니다. 대신 ~/Library/Containers/com.docker.docker/Data/docker.raw.sock

에 있습니다.

해결책

이 문제를 해결하려면 실제 Docker 소켓에서 표준 Docker 클라이언트가 이를 찾을 것으로 예상하는 위치로 심볼릭 링크를 생성해야 했습니다.

sudo ln -s ~/Library/Containers/com.docker.docker/Data/docker.raw.sock /var/run/docker.sock

이제 표준 소켓 주소를 통해 Docker 데몬에 접속할 수 있으므로 ko는 이미지를 여기에 푸시할 수 있습니다.

ko build . -B -L --platform linux/arm64
2024/07/22 16:04:04 Building github.com/otomato/myapp for linux/arm64
2024/07/22 16:04:04 Loading otomato/myapp:717e6196339c956bc878bd58f5ab8244a709dc0510051f9e6df72620f28a2aaa
2024/07/22 16:04:05 Loaded otomato/myapp:717e6196339c956bc878bd58f5ab8244a709dc0510051f9e6df72620f28a2aaa
2024/07/22 16:04:05 Adding tag latest
2024/07/22 16:04:05 Added tag latest
otomato/myapp:717e6196339c956bc878bd58f5ab8244a709dc0510051f9e6df72620f28a2aaa

그와 동시에 ko repo에도 이슈를 열었습니다. 하지만 문제가 해결될 때까지 이 꿀팁은 정말 매력적입니다.

이 내용이 여러분에게도 도움이 되기를 바랍니다.

위 내용은 MacOs에서 ko 로컬 이미지 게시 수정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.