jhipster는 docker를 통해 개발과 배포에 있어서 편리함을 제공한다.

docker를 이용하면?

  • 배포 환경과 동일한 환경에서 개발이 가능하다.
  • 인프라 확장이 용이하다. (docker-compose scale)

1. 환경

jhipster가 제공하는 도커 환경을 이용하기 위해 도커와 도커 컴포즈 설치가 선행되어야 한다.

2. 도커 이미지 만들기

java애플리케이션을 도커 이미지로 만들기 위해 Jib(https://github.com/GoogleContainerTools/jib) 라이브러리를 이용한다.

2.1 로컬에 설치된 도커데몬을 이용

  • With Maven, type: ./mvnw package -Pprod verify jib:dockerBuild
  • With Gradle, type: ./gradlew -Pprod bootJar jibDockerBuild

2.2 로컬에 도커 설치 없이 빌드 후 도커 레지스트리 배포

  • With Maven, type: ./mvnw package -Pprod verify jib:build
  • With Gradle, type:./gradlew -Pprod bootJar jib

2.3 오프라인 환경에서 이용

  • jib은 docker registry에서 최신 버전의 이미지를 받아오는게 우선적이므로, 인터넷이 불가능한 환경이라면 아래와 같이 이용.
    (cache에 저장된 이미지를 사용 )

  • With Maven, type : ./mvnw -Pprod package verify jib:dockerBuild --offlineWith

  • Gradle, type : ./gradlew -Pprod bootJar jibDockerBuild --offline

2.4 기타

docker-compose -f src/main/docker/app.yml up 시 기타 필요한 환경 컨테이너를 함께 띄운다.

만약, 각각의 따로 띄우거나 컨트롤 하고 싶다면 src/main/docker의 *.yml 파일을 참조하여 이용하면 된다.

  • PostgreSQL : docker-compose -f src/main/docker/postgresql.yml up,
  • Elasticsearch : docker-compose -f src/main/docker/elasticsearch.yml up
  • Sonar : docker-compose -f src/main/docker/sonar.yml up

3. 도커이미지 띄우기

2.번에서 빌드한 도커 이미지를 가동시키기 위한 cmd

  • docker-compose -f src/main/docker/app.yml up
    (db, search engine, registry 등 연관 이미지를 함께 가동시킴)
  • 도커 *.yml 위치 : src/main/docker

4. 도커 커맨드

  • 모든 컨테이너 확인
    - docker container ps -a
  • 컨테이너 상태 확인(cpu, menory등의 관련 정보)
    - docker container stats
  • 컨테이너 스케일 조정
    - docker-compose scale test-app=4("test"어플리케이션의 인스턴스를 4개로 조정)
  • 컨테이너 멈추기
    - docker-compose -f src/main/docker/app.yml stop
    - docker container stop <container_id>
  • 컨테이너 삭제**
    - docker container rm <container_id>**

출처 : https://www.jhipster.tech/docker-compose/

+ Recent posts