카테고리 없음

스프링부트 jar + 도커 + 스카우터

백봉 2024. 4. 19. 09:54

구성

 - api, tcp 통신 서버같이 뷰가 필요없는경우 jsp 를 안쓰는경우 jar 로 만들어 실행할 수 있다. 

 

작업

  1. Dockerfile 작성

    - 헬스체크 하려면 curl 을 설치해야한다. 

# 베이스 이미지 정의
FROM openjdk:17-slim

# 작업 디렉토리 생성
WORKDIR /app

# 애플리케이션 jar 파일 복사
COPY ./target/AB.jar /app/

# 에이전트 및 설정 파일 복사
COPY ./conf/agent.java /app/agent.java

# curl 설치(헬스체크용)
RUN apt-get update && apt-get install -y curl

# 도커 컨테이너에서 실행할 명령어
CMD ["java", "-javaagent:/app/agent.java/scouter.agent.jar", "-jar", "AB.jar", "--spring.profiles.active=prod-was1"]

# 컨테이너가 개방할 포트 지정
EXPOSE 8085 9241

 

  2. docker-compose.yml 파일 작성

    - TZ 을 굳이 서울로하는것은 로그 볼 때 편하기 위해서이다.

    - 최대 메모리 설정을 안했다.

version: '3'

services:
  ab1:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8085:8085"
      - "9241:9241"
    #mem_limit: 36g
    volumes:
      - ./logs:/app/logs
      - ./conf/agent.java/conf/scouter1.conf:/app/agent.java/conf/scouter.conf
    healthcheck:
      test: ["CMD", "curl", "-f", "http://host.docker.internal:8085/actuator/health"]
      interval: 30s
      timeout: 10s
      retries: 3
    restart: always
    environment:
      - TZ=Asia/Seoul

 

  3. 관련포트 방화벽 열기

 

  4. docker-compose up -d