mun dev

[Docker] SpringBoot 프로젝트 Docker로 배포하기(3) 본문

공부/Docker

[Docker] SpringBoot 프로젝트 Docker로 배포하기(3)

mndev 2023. 6. 2. 11:41

[Docker] SpringBoot 프로젝트 Docker로 배포하기(2)

2편을 수행한 후 도메인이 있다면 dnszi를 사용하여 도메인 이름에 네이버클라우드 플랫폼 서버 공인 ip를 입력하여 도메인에 ip를 부여한다.

1. 컨테이너 삭제

docker rm -f 컨테이너이름


2. NPM 설치

  • mkdir -p /docker_projects/nginx_proxy_manager_1
  • cd /docker_projects/nginx_proxy_manager_1

3. docker-compose.yml 생성

  • vim docker-compose.yml

    version: "3"
    services:
    app:
      image: 'jc21/nginx-proxy-manager:latest'
      restart: unless-stopped
      ports:
        - '80:80' # Public HTTP Port
        - '443:443' # Public HTTPS Port
        - '81:81' # Admin Web Port
      environment:
        TZ: "Asia/Seoul"
        DB_MYSQL_HOST: "172.17.0.1"
        DB_MYSQL_PORT: 3306
        DB_MYSQL_USER: "유저이름"
        DB_MYSQL_PASSWORD: "비밀번호"
        DB_MYSQL_NAME: "nginx"
      volumes:
        - ./data:/data
        - ./letsencrypt:/etc/letsencrypt

4. DB 생성

  • docker exec -it mariadb_1 mysql -u root -p비밀번호
  • CREATE DATABASE nginx;
  • exit

5. 실행

  • docker compose up -d

  • docker compose down
    종료


6. 관리 콘솔 접속

  • 크롬 : http://공인IP:81
  • 크롬에서 확인
  • 임시 관리자 계정
    admin@example.com
    changeme

7. 관리 콘솔 접속 후 관리자 계정정보 변경

  • 이메일 변경
  • 본인이 사용하는 이메일로 변경
  • 비밀번호 변경

8. NPM 해당 테스트 도메인으로 요청처리

  • 테스트 도메인으로 요청 온다면 172.17.0.1:8080 으로 토스하도록 지시

9. NPM 테스트 도메인에 대한 SSL 인증서 발급받고 적용

  • http에 대한 사용을 금지

  • SSL 인증서 발급받은 후 다시 edit하여 사진처럼 설정 on

10. 해당 이미지가 있다면 제거

  • docker rm -f gram_1
  • docker rmi -f gram

11. gradlew 를 소유자가 실행 가능한 상태로 변경

  • cd /docker_projects/gram/project
  • ls -alh | fgrep gradlew
  • chmod 744 gradlew
  • ls -alh | fgrep gradlew

12. 빌드

  • ./gradlew clean build

13. gram 이미지 생성

  • cd /docker_projects/gram/project

  • docker build -t gram .

    만약에 gram 이미지가 없으면 생성


14. gram 이미지 실행

docker run \
  --name=gram_1 \
  --restart unless-stopped \
  -p 8080:8080 \
  -e TZ=Asia/Seoul \
  -d \
  gram

15. 크롬에서 접속

크롬: https://test.com
https://도메인이름

접속하면 우리가 수행했던 프로젝트가 잘 배포된 것을 확인할 수 있다.