2024. 3. 12. 22:49ㆍDEVOPS
회사에서 맡고있는 프로젝트중 카카오톡을 활용한 카톡상담 기능이 필요해 기존 솔루션에 있던 기능을 적용되어 있지 않던 프로젝트에 구현하고 있었다.
로컬에서만 테스트를 해보다가 실제 배포이후 확인을 하고 싶은데 개발서버가 존재하지 않아 테스트를 하기 난감했다. 그렇다고 영업시간이 끝나지 않았는데 실서버로 배포 할 수는 없기에 도커를 사용해 linux 환경에서 기능을 테스트해보기로 했다. 로컬은 윈도우 데스크톱 이였기에 실제 서버에 배포된 이후에 카카오톡 상담을 통해 전송되는 이미지가 제대로 동작하는지 확인이 필요 했고 로컬에서는 테스트 할 수 없는 상태였다.
그래서 빌드한 이후 docker를 사용해 linux에서 동작을 테스트해 보려고 했는데 intellij에서 docker를 사용 할 수 있는 것을 처음 알았다. 다만 intellij에서 docker를 사용하기 위해서는 docker-engine이 필요하기때문에 docker-desktop은 설치해야 한다.

docker로 실행하기 위해 위 이미지처럼 DockerFile을 만들어 주었다.

`docker-compose`를 사용해 실행에 필요한 정보를 작성했다.

위 이미지 처럼 실행된 모습, container, image, network, volume 정보를 GUI로 확인 할 수 있고 로그도 쉽게 확인 할 수 있고 정말 너무 편하다...

인텔리제이의 서비스탭에서 터미널에 쉽게 접근 할 수 있다니.. 인텔리제이는 정말 잘 만든 것 같다.
docker run -it --name "ubuntush" ubuntu /bin/bash
shell에 들어가기 위해 항상 저 코드가 기억이 안나서 적어놓거나 찾아보면서 했었는데 너무 편리하다.

전체 이미지를 삭제 하거나 컨테이너를 모두 삭제 하려고 할때도 클릭으로 쉽게 지울 수 있다.
# docker container 삭제
docker rm $(docker ps -a -q)
# local에 저장된 image를 모두 삭제한다.
docker rmi $(docker images -q)
위 명령어가 기억이 안나서 불편하던 일에 자유로워 진 것 같다.

막연히 docker-desktop에서 삭제 했었는데 인텔리제이에서도 컨테이너나 이미지를 쉽게 지울수 있다.
Dockerfile이나 docker-compose는 변경되지 않았지만 어플리케이션이 변경되는 경우 다시 빌드하는게 필요한데
기본적으로 docker-compose를 재시작해도 docker image를 다시 만들지는 않는 것 같다.
처음에는 인텔리제이의 Docker 설정에서 수정해야 하는것인가 했는데 Run/Debug 구성 설정에서 변경하면 된다.
gradle 설정도 각각 하는걸 알면서 왜 안떠올랐는지 모르겠다.

Java 어플리케이션에 arg 값을 설정하듯 docker-compose에 필요한 옵션이 저렇게 일일이 선택 할 수 있는 값으로 나오고 있다.
정말 편하고 좋은 것 같다 현재는 회사에서 제공하는 인텔리제이 라이센스를 사용하는데 개인 라이센스도 구매해야겠다.
'DEVOPS' 카테고리의 다른 글
Docker(도커) 공부하기 1편 (2) | 2024.01.10 |
---|