기본 프로젝트 셋팅 => https://github.com/sh970901/dockerDB
article 회원 엔티티를 생성하고 기본 값으로 두개의 데이터를 넣었다.
정상적으로 셋팅이 되었다면 /getList에 접근하였을때 article의 정보를 json형식으로 출력한다.
실행이 잘된다면 이제 git clone으로 리눅스 환경에서 위의 프로젝트를 받는다.
chmod 744 gradlew 로 gradle 실행에 대한 접근권한을 부여한다.
.gradlew clean build로 jar 파일을 생성한다.
이 과정에 대해서는 https://sh970901.tistory.com/60에서 관련 포스팅하였다.
build 과정에 실패하였다. 이유가 무엇일까? build를 하면 스스로 테스트를 진행한다.
DB가 없기 때문에 build를 실패하였다. build를 하기 위해서는 DB가 필요하다. DB 설치 작업을 진행한다.
MariaDB 설치
- sudo yum install mariadb-server -y
- sudo systemctl enable mariadb
- sudo systemctl start mariadb
DB가 생성될 때 기본적으로 charset이 utf8mb4가 되도록 설정변경
- sudo vim /etc/my.cnf.d/mariadb-server.cnf
- sudo systemctl restart mariadb
보안설정
- sudo /usr/bin/mariadb-secure-installation
DB 접근
마스터계정(lldj 생성) 추가 생성
- mysql -u root -plldj123414
- GRANT ALL PRIVILEGES ON *.* TO lldj@'172.17.%.%' IDENTIFIED BY 'lldj123414';
- 172.17.0.1 만 허용하면, 컨테이너 TO MariaDB 컨테이너 통신은 가능하지만
- 172.17.0.1 만 허용하면, 컨테이너 TO HOST MariaDB로의 통신은 불가능하다.
- 그래서 172.17.%.% 도 허용
실행 결과
DB를 설치했지만 build에 실패했다. 그 이유는 프로젝트 내 DB접속 정보와 매치가 안되기 때문이다. application.yml을 수정해주거나 DB 접속 정보를 수정하는 작업이 필요하다. 필자는 간단히 root 계정을 만들고 database를 생성하고 application.yml을 리눅스 DB 설정에 맞춰서 수정했다.
재실행 결과
build하여 jar파일을 생성하는 것에 성공하였다. 이후에 다시 다운받은 프로젝트를 실행해보자.
https://sh970901.tistory.com/65
**참고 1
DB 계정을 생성하고 git에 올려야하는 경우 내 컴퓨터 안쪽에 접근해서 사용할 수 있도록 계정을 생성하는 방법이 있다.
ex)
- GRANT ALL PRIVILEGES ON *.* TO lldj@'%' IDENTIFIED BY 'lldj123414';
- GRANT ALL PRIVILEGES ON *.* TO lldjlocal@127.0.0.1 IDENTIFIED BY '1234';
- GRANT ALL PRIVILEGES ON *.* TO lldjlocal@172.17.0.1 IDENTIFIED BY '1234';
**참고 2
172.17.0.1
도커 호스트(현재 CentOS)를 말한다.
=> 도커를 설치하면 자동으로 생성되는 IP
=> 도커 안에 각각의 컨테이너는 172.17.0.2, 172.17.0.3 와 같은 IP를 가지게 된다.
=> 보통 127.0.0.1 하면 자신의 OS를 가르키는데 도커 호스트에서는 자기 자신을 가르치기 때문에 172.17.0.1을 사용하여 바깥쪽에 감싸는 호스트에 접근한다.
'IT' 카테고리의 다른 글
스프링 빈(Bean)이란 (1) | 2022.09.19 |
---|---|
JPA(Java Persistence API)를 왜 쓰는가? (2) | 2022.09.19 |
리눅스에서 도커(Docker) 활용하기 5(spring boot 이미지 생성 및 실행) (0) | 2022.09.18 |
Linux(centOS9) 설정 8(스프링부트 앱 빌드하여 실행하기) (0) | 2022.09.18 |
리눅스에서 도커(Docker) 활용하기 4(nginx 이미지 생성 및 실행) (0) | 2022.09.18 |