docker

    도커 컨테이너 로그 설정하기

    개요 EC2 서버에 띄운 컨테이너의 로그를 확인해볼 일이 있어 아래 명령어를 통해 로그를 확인했다. docker logs [컨테이너 명] 지난 로그들을 확인하다가 문득 로그 파일에 쌓여 있는 로그들이 굉장히 많다고 느꼈고, 싸한 느낌과 함께 도커 컨테이너의 기본 로그 설정을 찾아보았다. 도커 컨테이너의 기본 로깅 드라이버 도커 공식 문서에 따르면 도커 컨테이너에서 발생하는 표준 출력이나 표준 에러를 캡쳐하여 json 형태로 보여주는 json-file 로깅 드라이버를 사용한다. 근데 이 json-file 로깅 드라이버가 기본적으로 최대 용량이 정해져있지 않기에 만약 로그가 많이 남는 서비스라면 저장 공간이 부족해지는 일이 발생할 수도 있을 것이다. 그렇다면, 이 문제를 어떻게 해결할 수 있는지 한번 살펴보..

    Github actions, Docker image, Docker hub 를 활용한 CI/CD 과정

    개요 과거에 팀 프로젝트를 진행하며 일주일 정도 수동으로 배포하며 불편하고 아주 비효율적이었던 경험이 있다. 그래서 항상 새롭게 프로젝트를 진행하면 배포 과정을 자동화하는데, 이번 개인 프로젝트에서 진행했던 그 과정을 정리하고자 한다. 아키텍처 결정 서버 배포할 서버는 AWS EC2 를 활용하였다. 개인이 가진 컴퓨터를 활용하여 서버를 구축할 수도 있겠지만, 여분의 컴퓨터가 없는 나는 고려하지 않았다. 클라우드 서버 중에서 Naver Cloud 와 AWS 중에 고민을 하였는데, 일단 1년간 무료로 사용할 수 있는 AWS 를 사용하기로 하였다. CI 툴 Github actions 를 이용하였다. Jenkins 와 Github actions 간에 고민을 했지만, Jenkins 는 추가적인 설치가 필요하고 G..

    Docker 에서 /docker-entrypoint-initdb.d 를 통한 초기화 시 인코딩 오류 문제 해결법

    version: '3' services: db: image: mysql:8.0.32 ports: - "3306:3306" env_file: - ../env/docker-compose.env container_name: seat-view environment: TZ: Asia/Seoul volumes: - seat-view:/var/lib/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql - ./stadium.sql:/docker-entrypoint-initdb.d/stadium.sql restart: always volumes: seat-view: 위와 같이 docker-compose 를 이용하여 MySQL 컨테이너를 생성하고 실행하면서 테이블과 초기 데..

    docker-compose 로 개발 환경의 DB 구축하기

    개요 개인 프로젝트이고 자신만 그 코드를 실행시킨다면 굳이 docker 를 이용할 필요가 없다. 어차피 같은 환경에서만 실행할 것이니깐. 하지만, 여러 사람이 다루게 된다면 여러 환경에서 코드가 실행되어지게 되고 이때 docker 를 이용하면 구축하려는 것이 여러 환경에서 동일함이 보장되니 참 편하다. 다만, 개인 프로젝트라 하더라도 docker 로 환경을 구축하고, 여러 컨테이너들을 실행할 떄마다 매번 명령어들을 적어줘야하는 상당히 귀찮다. 순서를 틀리거나, 빼먹을 위험도 있다. 이런 불편함을 docker-compose 를 이용하면 쉽게 해결할 수 있다. docker-compose.yml 속성들 알아보기 docker-compose.yml 파일은 앞서 말했던 명령어들을 적어놓은 스크립트라고 보면 된다. ..