TOOL/SERVER 2021. 4. 13. 12:43

WebLogic

평소 개발용으로 Apache Tomcat을 WAS로 간단하게 사용한다.

그렇지만 다양한 환경에 맞춰 테스트하고 배포해야하는 일도 비일비재하다..

WebLogic을 Docker로 쉽게 띄우고 싶어서 정리해보았다.

WebLogic을 Docker로 쉽게 띄워서 사용하자.

1. 환경

Weblogic 12C on Docker

  • ※ 참고: WebLogic Version

    • Generic: 일반적인 번들 버전. Coherence Cluster를 애플리케이션 예제, 콘솔 확장 및 도움말 파일과 함께 번들로 제공, Continuous availability
    • Develop: 버전 중간에 dev 문구가 붙은 버전. 빠른 배포 또는 빠른 설치를 위한 버전. 예제 및 관리 콘솔 도움말 파일 누락.
    • Slim: 버전 중간에 slim 문구가 붙은 버전. 최소화 버전. 예제 및 관리 콘솔 누락. WebLogic Client, Maven Plugin 및 Java DB 누락. 그래픽 Installer 누락.
  • ※ 테스트 환경

    • Windows 10 pro 1909
    • Docker desktop for windows 2.3.0.3(45519) - engine:19.03.8
    • PowerShell
    • Chrome

2. 실행

WebLogic을 Docker Container로 실행하여 Application을 배포해보자.

2-방법A. Docker-Hub Repository

다음은 도커허브(Docker Hub)의 WebLogic Image로 Container를 만들어서 사용하는 방법입니다.

  1. Docker Hub에 Login합니다.
    docker login
     Username: your-docker-hub-account
     Password: (Password)
     Login Succeeded
  1. Docker Hub - Oracle WebLogic Server 페이지로 이동해서 약관에 동의해야 합니다.

  2. Container를 실행하기 전에 공유영역(volume)으로 지정할 경로를 만들고, domain.properties 파일에 Admin계정정보를 입력합니다.

    • 예) D:\Dockers\data\weblogic-12c 라는 폴더 생성 후, domain.properties파일 생성

      cd D:\\Dockers\\data
      mkdir weblogic-12c
      • D:\Dockers\data\weblogic-12c\domain.properties

        username=weblogic
        password=weblogic123
  3. Container 실행 (※ Windows의 경우 Powershell에서 실행 권장)

    • 예) 3의 예에 이어서 D:\Dockers\data 로 이동하여 명령을 실행합니다.

      cd D:\\Dockers\\data
      docker run --name wlsnode01 -d -p 7001:7001 -p 9002:9002 -e DOMAIN_NAME=base_domain -v $PWD/weblogic-12c:/u01/oracle/properties store/oracle/weblogic:12.2.1.3
      • ※ 환경변수 DOMAIN_NAME 옵션은 필수입니다. -e DOMAIN_NAME=base_domain
  4. 로그 보기

    docker logs -f wlsnode01

2-방법B. Oracle Repository

다음은 Oracle의 사설 Docker Container Registry의 WebLogic Image로 Container를 만들어서 사용하는 방법입니다.

( https://www.middlewareinventory.com/blog/weblogic-docker/ 의 친절한 설명을 재차 정리한 내용입니다. )

  1. Oracle의 사설 Registry에 접속합니다. (Oracle 계정)

    docker login container-registry.oracle.com
    Username: your-oracle-account@maybe-email.com
    Password: (Password)
    Login Succeeded
  2. Oracle 의 다음 Page에 접속하여 License에 동의

    • https://container-registry.oracle.com/ 에 Browser로 접속하셔서 우측 상단의 [Sign In]메뉴를 통해 Oracle계정으로 Login한 후
    • Middleware - WebLogic 에 관련된 링크를 따라가셔서 동의를 합니다.
  3. Container를 실행하기 전에 공유영역(volume)으로 지정할 경로를 만들고, domain.properties 파일에 Admin계정정보를 입력합니다.

    • 예) D:\Dockers\data\weblogic-12c 라는 폴더 생성 후, domain.properties파일 생성

      cd D:\\Dockers\\data
      mkdir weblogic-12c
      • D:\Dockers\data\weblogic-12c\domain.properties

        username=weblogic
        password=weblogic123
  4. Container 실행 (※ Windows의 경우 Powershell에서 실행 권장)

    • 예) 3의 예에 이어서 D:\Dockers\data 로 이동하여 명령을 실행합니다.

      cd D:\\Dockers\\data
      docker container run --name wlsnode01 -d -p 7001:7001 -p 9002:9002 -it -v $PWD/weblogic-12c:/u01/oracle/properties container-registry.oracle.com/middleware/weblogic:12.2.1.3
  5. 로그 보기

    docker logs -f wlsnode01

3. 배포

  1. Browser를 열고, 'Weblogic 서버 관리 콘솔 12c' 주소로 접속합니다. (※ https 입니다!)

    https://localhost:9002/console
    • ※ '연결이 비공개로 설정되어 있지 않습니다.' 와 같은 페이지가 나온다면 [고급] 버튼을 클릭 후, localhost(안전하지 않음)(으)로 이동을 클릭해서 접속합니다.
  2. domain.properties 파일에 적은 usernamepassword를 입력하여 로그인합니다.

  3. [잠금 및 편집] 버튼을 누르고

  4. 좌측메뉴의 [배치]버튼을 클릭.

  5. [설치]

  6. WAR파일 선택

    • 방법A: .war 파일 선택후 [다음]
    • 방법B: 파일 업로드라는 글자를 클릭하면 Host PC에서 바로 업로드 가능!
  7. 이 배치를 어플리케이션(응용프로그램)으로 설치 선택 후 [다음]

  8. DD 전용을 선택 후 [다음]

    • 'DD 전용': 배포할 Application이 갖고 있는 web.xml 또는 weblogic.xml 파일의 정책을 적용합니다.
  9. [완료]

    • 시간이 걸릴 수 있음..
  10. 컨텍스트 Path를 확인한 후 [저장]

4. 가동

2-방법B인 Oracle Repository의 Container를 사용하면 자동으로 가동이 되더군요..

그런데, 2-방법A인 Docker Hub의 Container를 사용하면, 다음 과정이 필요할 수 있습니다.

  1. Log 또는 상태를 확인해보고, 아직 가동이 되지 않았다면,
    • 좌측메뉴의 [배치] > [컨트롤(Tab)] > 대상 선택 후 > [시작] > [모든 요청 서비스]

5. 접속

  1. Browser를 열고, 배포시 설정된 컨텍스트 Path를 붙여서 URL로 App에 접속합니다.

    • 예) 컨텍스트 Path가 myapp 일 경우

        http://localhost:7001/myapp
  2. 정상적으로 열렸다면 => 성공!

6. Reference - 참조