1. Spring boot project 제작 및 docker image 생성
haproxy라는 프로젝트를 제작했습니다.
maven으로 java 11 version을 사용하며, 이 외의 의존성은 spring web 등 필요한 라이브러리를 가져왔습니다.
만드는 부분은 생략하겠습니다.
package com.example.haproxy;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@Value("${custom.hostname}")
String hostname;
@RequestMapping("/")
public String index(Model model) throws UnknownHostException {
String ipaddress = InetAddress.getLocalHost().getHostAddress();
model.addAttribute("hostname", hostname);
model.addAttribute("ip", ipaddress);
return "index";
}
}
다음 코드는 Spring님의 코드를 참고하여 제작했습니다. (https://www.youtube.com/watch?v=dZ-vKnACuaM&t=185s)
index.jsp에서는 호스트의 이름과 자신의 로컬 ip를 출력합니다.
Dockerfile 파일 생성
FROM adoptopenjdk/openjdk11
CMD ["./gradlew", "clean", "package"]
ARG JAR_FILE_PATH=target/*.jar
COPY ${JAR_FILE_PATH} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
위에서 만든 spring boot 프로젝트를 docker로 제작하기 위해 Dockerfile을 제작했습니다.
해당 파일은 프로젝트 root 폴더에 위치하여 빌드해야합니다.
2. Docker test
저는 docker build로 제작할 때에 image의 이름을 heony-haproxy 으로, version은 v1으로 설정했습니다.
따라서 이를 실행해볼 때 다음과 같이 실행할 수 있습니다.
또한 빠른 실행을 위해 docker hub에 제작하여 올려놓았습니다. 해당 이미지를 받으시려면 다음과 같이 입력하시면 됩니다.
[name]에는 지정하고 싶은 이름을 입력해주세요
docker run -d --name [name] -p 80:80 kimdongheon/heony-haproxy
해당 컴퓨터에서 80포트로 바인딩했기 때문에 localhost만 주소창에 입력해도 화면이 출력됩니다.
(80번 포트는 생략되므로 localhost만 입력해도 됩니다.)
728x90
'PROGRAMMING > Docker' 카테고리의 다른 글
Docker 소규모 아키텍트 (1) - Docker란 무엇일까 (0) | 2022.07.27 |
---|