4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DockerでMarkLogic環境構築してみた

Posted at

はじめに

お試しでDockerでMarkLogic環境を構築してみたため、その手順を記載します

動作確認環境

OS Docker version docker-compose version
Windows 10 Home 18.09.9 1.24.1

※Windows 10 HomeはDocker for Windowsをインストールできないため、Docker ToolBoxインストールして試しました

前提条件

本記事は以下がインストール・登録されていることが前提となります

  • Dockerのインストール
  • docker-composeのインストール
  • MarkLogic コミュニティの登録(無料)

ディレクトリ構成

ディレクトリ構成は以下のようにしてみました

.
├ docker ← Dockerファイルやrpmファイル等の格納ディレクトリ
│    │ 
│    └ marklogic ← Marklogic用のコンテナで必要なDockerファイルやrpmファイル等格納ディレクトリ
│        │ 
│        └ 10-0-2 ← Marklogic10.0.2の資材格納ディレクトリ
│            │
│            └ Dockerfile ← Dockerファイル
│            │
│            └ rpm ← rpmファイル格納ディレクトリ
│            │   │
│            │   └ MarkLogic-10.0-2.x86_64.rpm ← Marklogicのrpmファイル
│            │
│            └ conf ← 設定ファイル格納ディレクトリ
│                │
│                └ supervisord.conf ← supervisord用設定ファイル
│
├ docker-compose.yml ← Composeファイル

MarkLogicのrpmファイルは以下サイトより取得します。ダウンロードにはMarkLogicコミュニティに登録している必要があります

「Red Hat Enterprise Linux/CentOS,Version7」のrpmファイルをダウンロードしてください
image.png

各種ファイル設定

DockerfileとComposeファイル、supervisord.confファイルを修正します

Dockerファイル

Dockerファイルは以下のように修正します
コンテナ起動時にサービスを自動起動したいため、supervisordもインストールしています

Dockerfile
FROM centos:centos7

RUN yum -y update && yum clean all

RUN yum -y install glibc.i686 gdb.x86_64 redhat-lsb.x86_64 && yum clean all

RUN yum -y install initscripts && yum clean all

RUN yum install -y epel-release
RUN yum install -y supervisor && yum clean all
COPY ./conf/supervisord.conf /etc/

ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/MarkLogic/mlcmd/bin

COPY ./rpm/MarkLogic-10.0-2.x86_64.rpm /tmp/MarkLogic.rpm

RUN yum -y install /tmp/MarkLogic.rpm && rm /tmp/MarkLogic.rpm

EXPOSE 7997 7998 7999 8000 8001 8002

ENTRYPOINT ["/usr/bin/supervisord"]

Composeファイル

Composeファイルは以下のように修正

docker-compose.yml
version: '3'

services:
  ml10-node-1:
    build: ./docker/marklogic/10-0-2
    tty: true
    expose:
      - "7997"
      - "7998"
      - "7999"
    ports:
      - "8000:8000"
      - "8001:8001"
      - "8002:8002"
      - "8010:8010"
    hostname: "ml10-host-1.local"
    container_name: "ml0-node-1.local"

supervisord.confファイル

コンテナ起動時に起動させたいサービスを設定します
今回はMarkLogicを起動させます

supervisord.conf
[supervisord]
nodaemon=true
 
[program:MarkLogic]
command=/sbin/service MarkLogic start

コンテナ作成と起動

Composeファイルがあるディレクトリで以下コマンドを実行
実行完了まで少々時間がかかります

$ docker-compose up -d

実行が完了したら以下にアクセス

http://localhost:8001

※localhostの部分は環境によって異なります。例えば、Docker Toolboxを使用している方は、「docker-machine ip」を実行してIPアドレスを確認してlocalhost部分を置き換えてください

無事に起動できました
image.png

クラスタ構成にしたい場合

クラスタ構成で環境構築したい場合はComposeファイルを修正するだけでよい
以下は、3台のクラスタ構成にしたい場合

docker-compse.yml
version: '3'

services:
  ml10-node-1:
    build: ./docker/marklogic/10-0-2
    tty: true
    expose:
      - "7997"
      - "7998"
      - "7999"
    ports:
      - "8000:8000"
      - "8001:8001"
      - "8002:8002"
      - "8010:8010"
    hostname: "ml10-host-1.local"
    container_name: "ml0-node-1.local"

  ml10-node-2:
    build: ./docker/marklogic/10-0-2
    tty: true
    expose:
      - "7997"
      - "7998"
      - "7999"
    ports:
      - "18000:8000"
      - "18001:8001"
      - "18002:8002"
      - "18010:8010"
    hostname: "ml10-host-2.local"
    container_name: "ml0-node-2.local"
  
  ml10-node-3:
    build: ./docker/marklogic/10-0-2
    tty: true
    expose:
      - "7997"
      - "7998"
      - "7999"
    ports:
      - "28000:8000"
      - "28001:8001"
      - "28002:8002"
      - "28010:8010"
    hostname: "ml10-host-3.local"
    container_name: "ml0-node-3.local"

コンテナ作成・起動をし、諸々設定してクラスタ構成にすることに成功
クラスタ構成の手順はここでは割愛する
image.png

参考

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?