-
Docker API 이미지 빌드 buildargs 파라미터 값 변환(Feat. URI component encode)카테고리 없음 2021. 6. 15. 22:58728x90
Docker API로 도커 이미지 빌드 시 buildargs라는 파라미터를
Request body에 추가하여 변수 값을 전달할 수 있습니다.
이때 buildargs 파라미터를 전달하기 위해서는 URI component encoded 형태로 변환을 해주어야 합니다.
아래 Docker API 공식문서를 보고 참고해보겠습니다.
https://docs.docker.com/engine/api/v1.41/#operation/ImageBuild
buildargs를 파라미터로 추가할 수 있는 방법에 대해서 설명해주고 있습니다.
👉 buildargs={"FOO":"bar"}
일반적으로 URL 주소에 파라미터를 추가하는 양식은 다음과 같습니다:
👉 URL/{함수}?파라미터1=값&파라미터2=값
$ curl -X POST -H "Content-Type:application/tar" --unix-socket /var/run/docker.sock "http://localhost/build?t=keyword:0615_1500&buildargs={"TIMESTAMP":0615_1500"}
위와 같은 형태로 POST Request를 보낼 때 t(태그) 파라미터와 buildargs(ARG 변수) 파라미터를 추가하여 전달하는 방식입니다.
하지만 buildargs에서 그냥 일반 문자형태로 request를 보내면 에러가 나기 때문에,
해당 파라미터 값을 URI component encoded 양식으로 변환하여 사용해야 합니다.
URI component encoder는 아래 링크에서 참조!
https://onlinejsontools.com/url-encode-json
최종 docker image build Docker API
$ curl -X POST -H "Content-Type:application/tar" --unix-socket /var/run/docker.sock "http://localhost/build?t=keyword:0615_1500&buildargs=%7B%22TIMESTAMP%22%3A0615_1500%22%7D
- 이상 오늘의 삽질을 마칩니다:)
여기저기 삽질도 해보고
날려도 먹으면서
배우는 게
결국 남는거다
- Z.Sabziller