티스토리 뷰

개발/kubernetes

[Knative] func build/deploy 오류

Jaeyeon Baek 2024. 12. 9. 21:51

Knative func을 배포하려고 할 때 아래와 같은 오류가 발생했습니다(build를 해도 마찬가지 입니다). 갑작스러운 건 아니고, 테스트를 진행한 MacOS(M3)에서 처음 발생한 상황이네요.

$ func deploy -b=s2i -v
A registry for function images is required. For example, 'docker.io/tigerteam'.
? Registry for function images: docker.io/jybaek
Note: building a function the first time will take longer than subsequent builds
Building function image
Error: cannot create docker client: docker/podman API not available
Possible causes:
  The docker/podman daemon is not running.
  The DOCKER_HOST environment variable is not set.

 

당연히 docker는 docker desktop으로 실행되고 있던 상황이라 의심할 게 없었습니다. 혹시나 해서 docker host를 못 찾는 건가 싶어 context를 살펴봤습니다.

$ docker context ls
NAME              DESCRIPTION                               DOCKER ENDPOINT                                ERROR
default           Current DOCKER_HOST based configuration   unix:///var/run/docker.sock
desktop-linux *   Docker Desktop                            unix:///Users/jybaek/.docker/run/docker.sock

 

아니 이런! desktop의 docker.sock 위치가 default가 아니네요. 아마도 Knative func에서 참조하는 기본 위치는 unix:///var/run/docker.sock인 것 같습니다. DOCKER_HOST를 아래와 같이 지정하도록 합시다. 필요한 경우 .bash_profile 등에서 사용해 주도록 합니다.

export DOCKER_HOST=unix:///Users/jybaek/.docker/run/docker.sock

 

다시 func deploy를 진행하면 정상적으로 진행되는 것을 확인할 수 있습니다.

$ func deploy -b=s2i -v
A registry for function images is required. For example, 'docker.io/tigerteam'.
? Registry for function images: docker.io/jybaek
Note: building a function the first time will take longer than subsequent builds
Warning: registry 'docker.io/jybaek' does not match currently built image 'hub.docker.com/jybaek/bad-word-filter/bad-word-filter:latest' and no direct image override was provided via --image
Building function image
Step 1/8 : FROM registry.access.redhat.com/ubi8/python-39
latest: Pulling from ubi8/python-39
Digest: sha256:39ded558fb5a9de976b0ec01470138b54ea7482b3eb0f46b3abf35e7bac97aa4
Status: Image is up to date for registry.access.redhat.com/ubi8/python-39:latest
 ---> 940525b88439
Step 2/8 : LABEL "io.openshift.s2i.build.image"="registry.access.redhat.com/ubi8/python-39"       "io.openshift.s2i.build.source-location"="/Users/jybaek/work/docs/code-samples/eventing/bookstore-sample-app/start/bad-word-filter"       "io.k8s.display-name"="index.docker.io/jybaek/bad-word-filter:latest"
 ---> Running in 177af8ebe893
 ---> cb9dda1c6181
 ...
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday