Docker로 Spring Boot 환경 구축(2021년 1월판)
6239 단어 docker-compose도커자바spring-boot
0. 참고 기사
Docker × Spring Boot 환경 구축
htps : // 코 m / 아 키라 / ms / 베아 f79 아 0d39d9839 61
거의 이대로 실행하려고 하고, 시간 경과에 의한 변경치가 있었으므로, 그 주위를 써준 정도의 제등 기사입니다. 병렬로 읽는 것이 좋다고 생각합니다.
1.필자 환경
이 근처의 상세에 대해서는 생략합니다 (원 기사는 Mac이었습니다만 아무 문제 없겠지요)
2. 자력으로 작성하는 파일을 작성
자동 생성되는 파일이 많기 때문에 원본 기사를 접고 수동으로 편집하는 파일만 다룹니다.
docker-compose.yml
docker-compose.ymlversion: '3.8'
services:
java:
image: openjdk:15-slim
ports:
- 8080:8080
tty: true
volumes:
- ./server:/srv:cached
working_dir: /srv
먼저 빨리 쓰면 원래 기사와의 차이는
- version을 3.6→3.8(여기는 거의 영향 없음)
- image 버전 14→15 (중요)
나중에 설명하지만 initializr 버전이 14에서 15로 변경되었으므로 여기를 원래 기사로 유지하면 gradle이 이끼입니다.
일단 필자 개인으로서는, dockerhub에 "openjdk:15-slim"이 있는 것을 확인하고의 기재를 했어요라고 하는, 망설임(격게 문맥)으로 재작성한 것은 아니라는 죄송 정도의 팔로우를 넣어 유지합니다.
htps : // 후 b. 도 c r. 코 m/r/아 md64/오펜 jdk/
Gradle 프로젝트 파일
이전 기사와 마찬가지로 spring initializr 에서 만들고 [프로젝트 디렉토리]/server 아래에 확장합니다.
다만, 버전 주위가 당시와 바뀌고 있으므로, 그 차이만.
version: '3.8'
services:
java:
image: openjdk:15-slim
ports:
- 8080:8080
tty: true
volumes:
- ./server:/srv:cached
working_dir: /srv
Dependencies에 대해서는, 전 기사와 같이 "Spring Web"와 "Lombok"를 선택했습니다.
프로젝트를 시험 운영하기 위한 변경
전 기사와 같습니다만 일단.
server/src/main/java/com/example/api/ApiApplication.java
를 다음과 같이 편집.ApiApplication.java
package com.example.api;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class ApiApplication {
@RequestMapping("/")
public String home() {
return "Hello World";
}
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
}
3.Docker 시작
똑같습니다.
명령 줄에서 Docker 환경을 빌드하고
%docker-compose build
백그라운드에서 Docker 시작
%docker-compose up -d
4. Gradle 빌드
여기도 똑같습니다.
Java 컨테이너 내에 들어간다 ※사람에 의해서 winpty는 필요하거나 필요 없거나
% winpty docker-compose exec java bash
gradle 빌드(root@ 이후는 각 사람 다릅니다.일단)
root@558036f3cbd0:/srv# sh gradlew build
아까도 썼습니다만, 컨테이너의 Java를 15로 해 두지 않으면, 다음과 같이 Failure라든지 말해지는 날개가 됩니다(1패).
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 15' using tool chain: 'JDK 14 (14)'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 53s
1 actionable task: 1 executed
5. 실행 및 동작 확인
여기도 똑같이
root@558036f3cbd0:/srv# java -jar build/libs/api-0.0.1-SNAPSHOT.jar
localhost:8080 에 액세스하면, 방금 쓴 home()이 실행되어 "Hello World"가 표시되고 있을 것입니다.
99. 감상
이 기사가 세상적으로 필요한지 여부는 제쳐두고, 이번 정도의 버전 차이는 몇 번 이끼면서 자력으로 빨리 해결할 수 있을 정도가 적당한 엔지니어력이라고 생각합니다(코나미칸
하지만 예상대로 이끼라든가, 이끼가 될 것이라고 예상하면서 미수정인 채로 돌진해 기대대로의 결과를 얻는다는 것도 개인적으로는 중요하다고 생각하기 때문에, 미래에 이와 같은 사태를 밟은 사람은 똑같이 시도하면 좋다고 생각합니다.
Reference
이 문제에 관하여(Docker로 Spring Boot 환경 구축(2021년 1월판)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/honami/items/0267ec601d919027aaba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기도 똑같습니다.
Java 컨테이너 내에 들어간다 ※사람에 의해서 winpty는 필요하거나 필요 없거나
% winpty docker-compose exec java bash
gradle 빌드(root@ 이후는 각 사람 다릅니다.일단)
root@558036f3cbd0:/srv# sh gradlew build
아까도 썼습니다만, 컨테이너의 Java를 15로 해 두지 않으면, 다음과 같이 Failure라든지 말해지는 날개가 됩니다(1패).
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 15' using tool chain: 'JDK 14 (14)'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 53s
1 actionable task: 1 executed
5. 실행 및 동작 확인
여기도 똑같이
root@558036f3cbd0:/srv# java -jar build/libs/api-0.0.1-SNAPSHOT.jar
localhost:8080 에 액세스하면, 방금 쓴 home()이 실행되어 "Hello World"가 표시되고 있을 것입니다.
99. 감상
이 기사가 세상적으로 필요한지 여부는 제쳐두고, 이번 정도의 버전 차이는 몇 번 이끼면서 자력으로 빨리 해결할 수 있을 정도가 적당한 엔지니어력이라고 생각합니다(코나미칸
하지만 예상대로 이끼라든가, 이끼가 될 것이라고 예상하면서 미수정인 채로 돌진해 기대대로의 결과를 얻는다는 것도 개인적으로는 중요하다고 생각하기 때문에, 미래에 이와 같은 사태를 밟은 사람은 똑같이 시도하면 좋다고 생각합니다.
Reference
이 문제에 관하여(Docker로 Spring Boot 환경 구축(2021년 1월판)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/honami/items/0267ec601d919027aaba
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 기사가 세상적으로 필요한지 여부는 제쳐두고, 이번 정도의 버전 차이는 몇 번 이끼면서 자력으로 빨리 해결할 수 있을 정도가 적당한 엔지니어력이라고 생각합니다(코나미칸
하지만 예상대로 이끼라든가, 이끼가 될 것이라고 예상하면서 미수정인 채로 돌진해 기대대로의 결과를 얻는다는 것도 개인적으로는 중요하다고 생각하기 때문에, 미래에 이와 같은 사태를 밟은 사람은 똑같이 시도하면 좋다고 생각합니다.
Reference
이 문제에 관하여(Docker로 Spring Boot 환경 구축(2021년 1월판)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/honami/items/0267ec601d919027aaba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)