티스토리 뷰
도커 컨테이너에 저장된 로그는 컨테이너가 없어지면 로그도 함게 없어지기에 기록된 로그를 볼 수 없게된다.
따라서 이를 해결하기 위해서 도커 볼륨을 활용하여 WAS에 컨테이너의 로그들을 기록하도록 한다.
컨테이너 directory에 만들어지는 log 파일은
/log.config.path_IS_UNDEFINED/err_log.log 이다.
만들어지는 파일을 host 서버에 volume을 이용해 Directory Path를 mount 하여 host Directory에 해당 파일을 볼 수 있도록 한다.
설정
github action이 도는 gradle.yml 에서
sudo docker run -itd --rm --name server -p 80:8080 ${{ secrets.DOCKER_REPOSITORY }} \
-v ./$(pwd)/logs:/log.config.path_IS_UNDEFINED server
쉘 스크립트 언어를 작성한다.
-v 는 volume을 실행하는 docker command 이다.
-v {호스트 디렉토리}:{컨테이너 디렉토리} {이미지 id, 이름} 으로 입력한다. -> MOUNT 하는 과정
후에 어플리케이션 프로젝트 root에 만들어놓은 dockerfile에 아래의 코드를 입력한다.
VOLUME ["/log.config.path_IS_UNDEFINED"]
VOLUME 명렁어를 통해서 컨테이너에 로그 파일이 남겨져 있는 디렉토리를 적는다.
도커 볼륨을 검색해보면 e4~~~ 로 시작하는 볼륨을 볼 수 있다.
해당 볼륨을 자세히 보기 위해 inspect 명령어를 실행한다.
Mountpoint를 보면 mount되는 디렉토리의 path를 알려준다.
본인은 aws ec2 서버를 사용할 때 Mobaxterm 을 사용하는데 /var/lib/docker로 접근을 할 때 접근이 되지 않았다.
그 이유는 권한의 문제가 있기 때문이다.
권한의 문제를 해결한 후 해당 폴더에 접근을 한 후 적혀진 디렉토리에 접근하면 컨테이너에 만들어진 로그 파일이 담겨져 있는 것을 확인 할 수 있다.
'개인공부 > Devops' 카테고리의 다른 글
CICD - Github Actions 를 선택한 이유 (0) | 2022.05.06 |
---|---|
CICD - 트러블슈팅 (0) | 2022.05.06 |
CICD - github actions, S3, Code deploy (0) | 2022.05.06 |
docker - TIME ZONE (0) | 2022.05.04 |