Docker Image 빌드할때 ssh로 Git clone하기.

도커 이미지를 만들 때, 호스트에 있는 파일을 복사하는 게 가장 일반적이겠지만, CI툴에서 이미지 빌드를 한다거나, 특정한 브랜치를 항상 빌드한다거나 하는 특정한 경우에 Docker Image를 만드는 중에 소스코드를 클론 하는 경우가 있습니다. 이럴 때는 Dockerfile에 아이디와 패스워드를 노출할 수는 없기에, 제가 사용한 방식은 리파지토리에 등록된 Deploy Key를 이용하여 클론 한 후에 이미지에서 제거하는 방법을 사용했습니다. Dockerfile 코드는 다음과 같은 형식입니다. FROM ubuntu:latest COPY ssh_key /home/bitlog/.ssh/id_rsa RUN git clone git@github.com:bitlog/dev-repository.git RUN rm /..

golang docker 이미지 다이어트하기.

golang(이하 go)으로 작성된 애플리케이션을 Docker로 만들다가 문득 "go로 작성된 애플리케이션은 단독으로 실행할 수 있는 파일이 만들어지니까, 만약 빌드된 파일만 배포하여도 실행이 될까?"라는 궁금증이 생겼습니다. 그래서 몇 가지를 해봤습니다. * 사용했던 코드는 Docker image를 만들었던 코드는 주제와 관계 없는 내용이 담겨있어 오히려 내용을 이해하는 데, 방해되기 때문에 간단히 Hello World를 출력하는 코드로 대신합니다. package main import "fmt" func main() { fmt.Printf("hello, world\n") } 간단히 빌드를 하고나면 2.1 메가 짜리 실행 가능한 파일이 생깁니다. $ go build main.go $ ls -alh tot..