게시글
질문&답변
docker run -p 8080:8080 --name mytomcat docker-server
안녕하세요, 이도원입니다. 문의하신 내용에 대해 확인한 내용 다시 한번 정리해 보려고 합니다. 아래에서 설명하고 있는 모든 서비스들은 모두 Docker container로 실행되었습니다. Jenkins에서 docker-server로 실행 된 서버를 등록 (SSH 접속을 위해)docker-server에 미리 저장되어 있는 Dockerfile을 수정 Jenkins에서 Item 생성 후 "빌드 후 조치(Post actions)"로 아래 항목 추가 docker-server로 hello-world.war 파일 전송 docker builddocker conatiner run docker-server에 SSH로 접속해서 docker image 생성 및 컨테이너 실행이 정상적으로 되었는지 확인MacOS의 웹 브라우저에서 확인 위 내용에 대한 이미지를 아래와 같이 첨부해 드립니다. 1.Jenkins에서 docker-server로 실행 된 서버를 등록 (SSH 접속을 위해)docker-server는 배포되는 tomcat 테스트를 위해 8081 port를 미리 오픈(publish) 함(사진) 2.docker-server(container id: 2a38d7f65548)에 미리 저장되어 있는 Dockerfile을 수정tomcat 이미지를 latest 말고 9.x 버전으로 테스트 해 보시기 바랍니다. (사진) 3.Jenkins에서 Item 생성 후 "빌드 후 조치(Post actions)"로 아래 항목 추가 docker-server로 hello-world.war 파일 전송 docker build, docker conatiner run (-> Exec commands 에 2개의 실행 문장 작성)이미지 명 -> hello-world:v2(사진)빌드 결과 화면(사진) 4.docker-server에 SSH로 접속해서 docker image 생성 및 컨테이너 실행이 정상적으로 되었는지 확인(사진) 5.MacOS의 웹 브라우저에서 확인(사진)제가 실행했던 환경은 MacOS m1에서 위 과정을 실행 시, docker-server에 생성 된 docker image는 arm64로 빌드되었습니다. 그러나, 그 이후로 실행할 때도 모두 같은 m1 환경이라, arm 이미지 생성에 따른 문제는 없습니다. 추가로 확인해 보시면 좋다고 생각되는 부분은 docker-server 에 포함된 Dockerfile에서 base image를 tomcat:latest로 하지 마시고, 9.x 버전으로 변경해서 해 보시기 바랍니다. (저도 tomcat;9.0.98-jdk17 로 테스트 했습니다)계속 같은 오류 발생 시, 작업하신 스크립트도 다시한번 공유해 주시면, 저도 동일한 환경으로 다시한번 확인해 보도록 하겠습니다. 감사합니다.
- 0
- 5
- 138
질문&답변
tomcat 서버에 배포하기
안녕하세요, 이도원입니다. 작업하신 내용을 보면, Tomcat 서버에 배포까지는 잘 되신 것 같습니다. Tomcat 서버를 어떤 방식으로 기동하셨는지 모르겠지만, 제가 오늘 다시 확인해 본 과정을 공유 드리니 참고 부탁드립니다.Docker container로 Tomcat 9.0 실행 (만약 Local 환경에 직접 실행 중이라면, 2번으로 넘어가시면 됩니다)docker run -it -d -p 8088:8080 tomcat:9.0.98-jdk17Tomcat 서버의 환경 설정 폴더(./conf)에서 Deployer user 추가 (-> 이 부분은 부록에서 설명 드리고 있습니다)Jenkins 에서 Tomcat 서버로 배포하기 위한 스크립트(Item) 실행 Tomcat 서버의 manager 화면에서 배포 된 애플리케이션(hello-world) 확인 (이부분은 위 첨부해 주신 이미지의 내용과 같습니다)http://[Tomcat 서버 IP]:[Tomcat 서버 Port]/hello-workd로 접속하여 결과 확인 (ex, htpp://localhost:8088/hello-world)Docker 로그 확인 (docker logs -f [Container ID 또는 Container Name] (-> 아래는 제가 실행한 로그 화면 결과 입니다) 2024-12-17 01:56:42 [http-nio-8080-exec-5] DEBUG com.njonecompany.web.WebInitializer - No ContextLoaderListener registered, as createRootApplicationContext() did not return an application context17-Dec-2024 01:56:42.773 INFO [http-nio-8080-exec-5] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/hello-world.war] has finished in [689] ms2024-12-17 01:57:24 [http-nio-8080-exec-9] DEBUG c.n.web.controller.WelcomeController - Welcome to njonecompany.com...Tue Dec 17 01:57:24 UTC 20242024-12-17 01:57:40 [http-nio-8080-exec-7] DEBUG c.n.web.controller.WelcomeController - Welcome to njonecompany.com...Tue Dec 17 01:57:40 UTC 20242024-12-17 01:59:11 [http-nio-8080-exec-3] DEBUG c.n.web.controller.WelcomeController - Welcome to njonecompany.com...Tue Dec 17 01:59:11 UTC 2024위 로그 결과를 보시면, hello-wolrd.war 파일이 배포되었다는 부분과, 웹 브라우저에서 호출할 때마다, Welcome to ~ 로그가 출력되는 걸 확인해 보실 수 있습니다. 현재 404 오류가 발생한다는 부분에서 로그에 어떻게 출력되는지 확인해 보시면 좋을 것 같습니다. 저희가 공유해 드렸던 코드에서는 /hello-world를 호출 시 index.jsp와 같은 메인 페이지로 이동되게 되어 있는데, 배포의 문제인지 패키징 된 WAR 파일의 문제인지 로그와 함께 확인해 봐야 할 것 같습니다. 계속 같은 문제가 발생하신다면, 작업하신 환경, 실행 스크립트다 컨테이너 등의 정보와 로그 등도 같이 공유해 주시면, 다시 한번 확인해 보도록 하겠습니다. 게시물에 글 작성하기 어려우시면 아래 메일로 보내주셔도 됩니다. edowon0623@gmail.com감사합니다.
- 0
- 3
- 46
질문&답변
강의자료
안녕하세요, 이도원입니다. 강의자료는 PDF 형식으로 등록해 놓았습니다. https://www.inflearn.com/courses/lecture?courseId=329275&unitId=258319위 강의 링크에서 다운로드 받으실 수 있습니다. 감사합니다.
- 0
- 2
- 22
질문&답변
'jenkins 설치 및 설정'에서 사용하는 터미널의 위치
안녕하세요, 이도원입니다. 말씀하신 터미널의 위치는, Windows에서 실행하신 CMD에서 어떤위치인지 상관없이 실행하실 수 있습니다. 정상적으로 docker desktop이 설치 되었다면, docker run 하는 명령어는 터미널에서 실행하는 명령어의 위치하고는 상관없이 정상 작동되어야 합니다. 최신 버전의 Jenkins 이미지는 아래와 같습니다.docker pull jenkins/jenkins터미널에서 올려주신 것과 같은 오류가 발생하는 것은 에러메시지를 봤을때는 인증에 관련된 오류인 것 같은데, 터미널에서 docker login 후 다시 실행해 보시기 바랍니다.docker logindocker pull jenkins/jenkins감사합니다.
- 0
- 2
- 34
질문&답변
docker run -p 8080:8080 --name mytomcat docker-server
안녕하세요, 이도원입니다. 올려주신 명령어의 docker-server 이미지는 직접 생성하신 건가요? 아니면, 제가 공유해 드리고 있는 hub.docker.com 사이트에서 다운받으신 이미지 인가요? 만약 제가 공유해 드리고 있는 이미지라면, 아래와 같은 명령어로 실행하는 것 대신, docker run -p 8080:8080 --name mytomcat docker-server다음 명령어 실행하셔야 정상적으로 컨테이너가 실행됩니다. docker run --privileged --name manager -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker-server:m1 /usr/sbin/init위 명령어로 컨테이너를 기동하신 후에는 MacOS 터미널에서 ssh root@127.0.0.1 -p 10022 로 실행 시(암호: P@ssw0rd) 정상적으로 SSH 접속이 되어야 합니다. 혹시 질문하신 내용과 다른 답변이었다면, 어떤 이미지로 실행하셨는지 공유해 주시면 다시 확인해 보도록 하겠습니다. 감사합니다.
- 0
- 5
- 138
질문&답변
Slf4j log cannot find symbol 오류 해결방법
안녕하세요, 이도원입니다. 정보 공유 감사드립니다. 좋은 하루 되세요.
- 0
- 2
- 84
질문&답변
도커 데스크탑 설치
안녕하세요, 이도원입니다. 강의에 필요한 SW 설치는 Section9에서 설명드리고 있습니다. 말씀하신 Docker desktop에 대해서도 간략하게나마 설명드리고는 있는데, 설치하시면서 부족하시거나 추가 보충 설명이 필요하시면 다시 글 남겨주세요. SW 설치 관련 강의자료도 아래 강의 페이지에서 자료 다운로드 받으실 수 있도록 업데이트 했습니다. 같이 참고해 주세요.https://www.inflearn.com/course/lecture?courseSlug=%EC%A0%A0%ED%82%A8%EC%8A%A4-ci-cd-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8&unitId=124588&subtitleLanguage=ko감사합니다.
- 0
- 2
- 32
질문&답변
war, jar
안녕하세요, 이도원입니다. 말씀하신 내용처럼 최근에는 별도의 WAS에 애플리케이션을 배포하는 방식인 war 파일 형식보다는 jar 파일 형식으로 컨테이너 가상화에서 실행하는 경우가 많습니다. 다만, 강의에서는 jar파일과 war파일에 대한 내용이나 작업 방식보다는 웹 애플리케이션 형식을 어떻게 배포하는지에 대해 실행하기 위해서 최대한 간략한 형태의 소스코드로 작성된 예제를 작성하였습니다. 강의에서 사용된 war 파일 형식은 독적으로 실행가능하도록 되어 있기도 합니다. 강의 업데이트 시 최신화하여 반영하도록 하겠습니다. 감사합니다.
- 0
- 2
- 26
질문&답변
톰캣을 도커 컨테이너로 실행하시는 분들
안녕하세요, 이도원입니다. 정보 공유 감사드립니다. 좋은 하루 되세요.
- 0
- 2
- 83
질문&답변
Ansible 영상 중 docker image push 를 하려는 이유?
안녕하세요, 이도원입니다. 답변이 늦어 죄송합니다. 강의에서 설명하고 있는 Yaml 파일에 대한 실행은 Ansible에서 여러가지 스크립트를 실행하는 과정에 일부로 소개하고 있습니다. 실무 프로젝트에서 Docker hub 사이트에 프로젝트 소스가 포함되는 것과 같은 내용은 없어야 겠지요. 만약 Docker Repository로 Docker hub 사이트를 이용하실 거라고 하면 당연히 Private repository를 사용하셔야 할 것 같습니다. 추가로 Dokcer hub 대신 Private registry(Harbor)를 구성하여 사용하는 내용을 아래 강의에서 설명드리고 있습니다. DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry) 강의 | Dowon Lee - 인프런혹시 위에 답변 드린 내용이 질문하신 내용과 다르다면 다시 글 남겨 주시기 바랍니다. 감사합니다.
- 0
- 1
- 59