./gradlew bootJar
docker-compose up -d --build
bootJar로 build/libs/ 경로에 실행 가능한 .jar 생성 후 docker 실행.
Dockerfile에 해당 Jar 파일을 app.jar로 복사해 컨테이너 구성.
docker-compose로 컨테이너를 background로 실행. (docker ps로 실행됬는지 확인)
dev_spring branch에 push 하면 github Action이 자동으로 EC2 인스턴스에 접속해 아래 작업을 수행.
- EC2 접속 (github repo secrets에 EC2 ip, password 정의)
- .env 파일 생성 및 repo secrets에서 DB에 대한 변수 삽입
- spring boot build
- jar 파일 복사
- docker build & run
Github action에 관한 파일은 ~/.github/workflows/deploy.yml 에 작성해서 수행할 작업을 정의.
상단 “Graph” 탭 → Expression에 아래 중 하나 입력 후 Execute.
http_server_requests_seconds_count
jvm_memory_used_bytes
hikaricp_connections_active
process_cpu_usage
# 1. 네트워크 생성
docker network create redis-net
# 2. Redis 실행
docker run -d \
--name redis \
--network goodjob-net \
-p 6379:6379 \
redis \
redis-server --bind 0.0.0.0 --protected-mode no
# 3. Redis Exporter 실행
docker run -d \
--name redis_exporter \
--network redis-net \
-p 9121:9121 \
oliver006/redis_exporter \
--redis.addr=redis://redis:6379 \
--count-keys=db0:recommendation:* \
--count-keys.db=0
redis slave(replica) issue
redis가 있는 서버 접속. (hunian)
redis docker 접속.
docker exec -it redis redis-cli
redis 상태 확인.
INFO replication
replica라면 master로 다시 변경.
replicaof no one
Jacoco Test 수행
./gradlew clean test jacocoTestReport
Web View로 Jacoco 결과 확인 (Test Coverage)
open build/reports/jacoco/test/html/index.html
기본 JUnit Test결과도 테스트 커버리지는 없지만 Web View로 확인 가능
open build/reports/tests/test/index.html