docker을 활용하여 배포 자동화까지는 구축했지만 정확한 동작 방식에 대해 생각해보고있었다.
그러다가 로컬DB나 환경변수도 이미지로 저장되고 있는것이 아닌가라는 생각이 들었고 해결할 필요성을 느꼈다.
git에서 원하지 않는 파일은 gitignore
으로 처리하는 것처럼 docker에서도 같은 기능을 제공한다.
그 기능을 하는 것이 dockerignore
이다.
사용방법은 gitignore
과 매우 유사하여 따로 설명이 필요하지 않다.
위가 dockerignore
를 사용한 이미지, 아래는 기존 이미지이다.
예상대로 로컬DB나 media 등 모두 docker 이미지로 저장되고 있었다.
이를 모두 제거해주니 이미지 용량도 459MB에서 318MB로 줄일 수 있었다.
그런데 생각해보니 로컬에서 이미지를 빌드할때는 해당 작업이 필요하지만 배포 자동화가 된 상태에서는 github에 앱을 업로드하고 github action으로 이미지를 빌드하기때문에 gitignore
로 걸러진 파일은 자동으로 docker 이미지에 반영되지 않는다.