Local PC 환경에서 WebLogic을 데이터베이스와 함께 테스트하는 환경을 구축할 필요가 있을 때, 내 PC에 각종 소프트웨어들을 다 설치할 필요 없이 표준 이미지로 제공되는 Docker Image 이용하여 구동만 하면 매우 편리할 때가 많다.

여기에서는 MySQL을 DB로 사용하는 WebLogic 환경을 구축하는 간단한 방법을 설명할 것이다.

Docker-Compose 파일 생성

Docker Compose 구성 파일에서 사용하는 필요한 내용들을 미리 준비해 둔다.

필요 파일

  • Docker Images : MySQL과 WebLogic Image는 Docker Hub에서 받을 수 있다.
  • MySQL JDBC Driver : Download Connector/J
    • 다운 받은 jar 파일을 작업 디렉토리에 복사한다.
    • 작업 디렉토리는 WebLogic Container에 Volume으로 Attach 할 것이다.
  • domain.properties 파일 : 도메인 계정 정보를 담는 파일이다. 아래 내용을 참고해서 작업 디렉토리 내에 생성해 둔다.

domain.properties

username=weblogic
password=welcome1

docker-compose.yml

version: '3'

services:
  mysql:
    image: mysql
    container_name : some-mysql
    environment:
      MYSQL_ROOT_PASSWORD: welcome1
      MYSQL_DATABASE: mysql
    volumes:
      - ./mysqldata:/var/lib/mysql
      - .:/mnt/tmp
    ports:
      - "3306:3306"
      - "33060:33060"
    hostname: mysql
    command: --default-authentication-plugin=mysql_native_password
  weblogic:
    image: store/oracle/weblogic:12.2.1.3-dev
    container_name: myweblogic
    environment:
      PRE_CLASSPATH: "/u01/oracle/properties/mysql-connector-java-8.0.16.jar:${PRE_CLASSPATH}"
    depends_on:
      - mysql
    volumes:
      - .:/u01/oracle/properties
    ports:
      - "7001:7001"
      - "9002:9002"
    stdin_open: true
    tty: true

파일이 완료되었으면 컨테이너를 구동한다.

> docker-compose up -d

MySQL User 생성

애플리케이션에서 사용할 DB User를 생성한다. 이 User는 WebLogic에서 DataSource를 생성할 때 사용할 것이다. 현 작업 디렉토리가 MySQL Container에 Volume으로 연결되어 있으므로 사용자를 생성할 createuser.sql 파일을 현 디렉토리 내에 다음 내용으로 생성한다. 별도의 필요한 DDL/DML이 있다면 여기에 추가하면 좋을 것이다.

CREATE user 'user1' IDENTIFIED BY 'welcome1';
GRANT ALL PRIVILEGES ON mysql.* TO 'user1'@'%';

다음 command를 실행하면 사용자가 추가 될 것이다. 새롭게 생성되는 사용자는 mysql_native_password plugin을 기본하도록 설정되어 있다.

> docker exec -it some-mysql sh -c "mysql -uroot -pwelcome1 mysql < /mnt/tmp/createuser.sql"

DataSource 생성

WebLogic Console에 접속해서 DataSource를 생성한다.

https://localhost:9002/console로 접속한다.

적당한 드라이버를 선택한다.

사용자 생성 시 사용했던 Password를 입력한다.

Connection을 Test 해본다. 입력이 잘 되었다면 성공할 것이다.

Finish를 클릭하면 DataSource가 생성된다.

이제 애플리케이션에서 Connection을 얻어다 사용하기만 하면 된다.