Chaptor.09 - 로컬에 docker설치, Spring boot 프로젝트 도커이미지 만들기, 도커이미지 로컬에서 실행해보기
https://www.hanumoka.net/2019/01/21/springBoot-20190121-springboot-deploy-docker/
위 링크 참고
1. gradle > build 를 실행해서 jar 파일을 생성한다.
build 가 완료되면 /build/libs/ 경로에 jar 파일이 생성된다.
2. 커맨드에서 아래 명령어를 실행한 후 localhost:8080 에서 제대로 구동되는지 확인한다. (정상확인 =)
java -jar springboot-jwt-tutirial-0.0.1.jar
1. 로컬에 docker 을 설치한다.
https://docs.docker.com/desktop/windows/install/
2. 다운받은 설치파일로 설치를 진행한다.
3. 도커 설치 완료 후 도커 실행 시 윈도우즈 virtualizaion 가상화 관련 오류 메세지
bios에서 가상화 on 해야한다고 함. (재부팅 f8 bios setup ㄱㄱ)
가상화 on off 여부는 작업관리자 > 성능 탭에서 확인할 수 있다.
4. WSL 2도 추가 설치가 필요하다는 안내메세지 > 해당 링크로 이동해서 WSL 설치 진행한다.
5. 아래 링크 클릭
6. WSL 2 설치 진행중...
7. 도커 설치완료 , 도커 실행
8. 커맨드에서 도커 설치 확인
docker -v
9. 도커이미지 테스트 실행 커맨드 실행
docker run -d -p 80:80 docker/getting-started
10. 실행 후 localhost:80 접속해보면 아래와 같은 화면 확인됨.
11. 인텔리제이 > 프로젝트 최상단 경로에 DockerFile 생성.
* 주의 : 확장자가없는 파일임 Dockerfile.txt 라고 하면
"failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount358418333/Dockerfile: no such file or directory" 에러발생함.
FROM openjdk:11
ADD build/libs/springboot-jwt-tutorial-0.0.1-SNAPSHOT.jar app.jar
ENV JAVA_OPTS=""
ENTRYPOINT ["java","-jar","/app.jar"]
12. 만든 DockerFile을 바탕으로 도커 이미지 생성
docker build --tag springboot-jwt-tutorial-0.0.1 .
13. 아래 커맨드로 생성된 도커이미지를 확인 할 수 있다.
docker images
14. 생성된 도커 이미지 실행
docker run -p 8080:8080 springboot-jwt-tutorial-0.0.1
스프링부트jar 구동한것 처럼 똑같이 localhost:8080 포트에서 잘 실행된다. (api 테스트정상)
15. 도커로 구동시 h2-console 안들어가짐. (/h2-console)
"이 서버에서 원격 연결 ( 'webAllowOthers')을 사용할 수 없습니다. "
https://moonsiri.tistory.com/33 참고해서 수정
application.yaml 수정
spring:
h2:
console:
enabled: true
#로컬이외 환경에서 구동 시 h2-console 접속허용
settings:
web-allow-others: true
aws서버 배포 후 h2-console 접속안되는것도 위와 같은 방법으로 해결 가능하다.