DockerでMarkLogic環境構築してみた
はじめに
お試しで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ファイルをダウンロードしてください
各種ファイル設定
DockerfileとComposeファイル、supervisord.confファイルを修正します
Dockerファイル
Dockerファイルは以下のように修正します
コンテナ起動時にサービスを自動起動したいため、supervisordもインストールしています
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ファイルは以下のように修正
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]
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部分を置き換えてください
クラスタ構成にしたい場合
クラスタ構成で環境構築したい場合はComposeファイルを修正するだけでよい
以下は、3台のクラスタ構成にしたい場合
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"
コンテナ作成・起動をし、諸々設定してクラスタ構成にすることに成功
クラスタ構成の手順はここでは割愛する
参考
Author And Source
この問題について(DockerでMarkLogic環境構築してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/FKSM/items/dcc1a65634fb54e2b4c5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .