Docker

[Docker] Dockerfile로 이미지 생성하기 (2)

달의요정루나 2022. 1. 16. 12:22

1. 해당 게시물과 연관된다.

https://julian5383.tistory.com/38?category=880390 

 

[Spring] 다양한 연관관계 처리

- 예제 프로젝트 작성 1) application.properties 설계 spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver spring.datasource.url = jdbc:mysql://localhost/jpa_ex?characterEncoding=utf8&serve..

julian5383.tistory.com

2. 해당 Dockerfile을 만들고 다음처럼 Boot04에 복사한다.

FROM openjdk:11-jdk
ADD target/boot04-0.0.1-SNAPSHOT.jar boot-app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Dfile.encoding=UTF8","-jar","boot-app.jar"]

3. application.properties으로 들어가 localhost를 boot-mysql:3306으로 바꾼다.

4. boot04파일에 오른쪽마우스 클릭을 하고 Run As - Run Configurations으로 들어간다.

5. Goal을 package, Profiles의 내용이 있으면 지우고 Skip Tests를 클릭하고 Run을 한다. 그렇게 하면 target에 파일 4개가 생길 것이다.

6. 포트번호 3306 충돌을 막기 위해서 제어판-관리-서비스로 들어가서 MySQL80이 시작유형이 수동으로 되어있는지 확인한다. 만약 자동으로 되어있으면 시작 유형을 수동으로 바꾸어 준다.

7. PowerShell을 관리자 권한으로 들어가고 경로를 boot04로 맞춘다.

8.

docker run -it --name boot-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=jpa_ex -e MYSQL_PASSWORD=root mysql:latest을 입력한다.

 

MYSQL_ROOT_PASSWORD와 MYSQL_PASSWORD에는 자신의 MySQL Workbence 비밀번호를 입력하고 MYSQL_DATABASE에는 자신의 데이터베이스 이름을 입력한다.

9. Thymeleaf에 들어가서 Database Development로 들어가서 Database Connections의 Spring MySQL을 연결시킨다. 만약 jpa_ex가 뜨면 성공한 것이다.

10. 만약 에러가 뜬다면 다음을 확인해 보기를 권장한다. Spring MySQL에서 Properties으로 들어가서 Driver Properties에서 데이터베이스 명과 URL 그리고 패스워드가 올바르게 장입되었는지 점검한다.

- 해당 게시물은 boot04에서 변형한 것이다. 포트번호를 변경했기 때문에 URL에서 localhost포트번호를 localhost:3306을 입력하고 Test Connection을 눌러서 연결이 잘 되었는지 확인해 본다.

 

11. 8번의 구문이 실행되고 있는 상태에서 다른 PowerShell을 관리자 권한으로 실행한 다음 boot04로 이동한다. 그리고 docker container ls을 입력해서 컨테이너가 실행중인지 확인한다. 

12. <docker image build -t app:latest .> 명령어로 이미지를 생성한다.

13. <docker run -it --name boot-app -p 8080:8080 --link boot-mysql:database app:latest> 구문으로 Dockerfile로 샹성된 이미지를 실행시킨다.

14. 그렇게 되면 스키마에서 tbl_members와 tbl_profile에 내용들이 들어간다.

(해당 테이블에서 내용이 들어가는 이유는 맨위에 링크를 걸어놓은 게시물 참조)

 

'Docker' 카테고리의 다른 글

[Docker] Dockerfile로 이미지 생성하기 (3)  (0) 2022.01.31
[Docker] 도커란?  (0) 2022.01.29
[Docker] Dockerfile로 이미지 생성하기  (0) 2022.01.15
[Docker] 컨테이너 이미지 관리  (0) 2022.01.15
[Docker] 도커 설치방법  (0) 2022.01.06