전문 검색 서버를 구축한 이야기 ​​그 2(docker 구축 상세편)

그 1에서는 자연스럽게 전문 검색 서버 구축의 경위와 구축 환경에 대해 기재했습니다.
그 2에서는 조금 더 파헤쳐 환경 구축의 메모를 기재합니다. (거의 웹 증거)

OS 환경



OS 버전
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

커널 버전
$ uname -a
Linux [ホスト名] 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

docker 설치



docker는 CentOS 표준 docker를 yum으로 설치했습니다.
$ sudo yum -y install docker

インストール:
  docker.x86_64 2:1.13.1-96.gitb2f74b2.el7.centos

依存性関連をインストールしました:
  PyYAML.x86_64 0:3.10-11.el7
  atomic-registries.x86_64 1:1.22.1-26.gitb507039.el7.centos
  audit-libs-python.x86_64 0:2.8.4-4.el7
  checkpolicy.x86_64 0:2.5-8.el7
  container-selinux.noarch 2:2.95-2.el7_6
  container-storage-setup.noarch 0:0.11.0-2.git5eaf76c.el7
  containers-common.x86_64 1:0.1.35-2.git404c5bd.el7.centos
  device-mapper-event.x86_64 7:1.02.149-10.el7_6.7
  device-mapper-event-libs.x86_64 7:1.02.149-10.el7_6.7
  device-mapper-persistent-data.x86_64 0:0.7.3-3.el7
  docker-client.x86_64 2:1.13.1-96.gitb2f74b2.el7.centos
  docker-common.x86_64 2:1.13.1-96.gitb2f74b2.el7.centos
  libaio.x86_64 0:0.3.109-13.el7
  libcgroup.x86_64 0:0.41-20.el7
  libsemanage-python.x86_64 0:2.5-14.el7
  libyaml.x86_64 0:0.1.4-11.el7_0
  lvm2.x86_64 7:2.02.180-10.el7_6.7
  lvm2-libs.x86_64 7:2.02.180-10.el7_6.7
  oci-register-machine.x86_64 1:0-6.git2b44233.el7
  oci-systemd-hook.x86_64 1:0.1.18-3.git8787307.el7_6
  oci-umount.x86_64 2:2.3.4-2.git87f9237.el7
  policycoreutils-python.x86_64 0:2.5-29.el7_6.1
  python-IPy.noarch 0:0.75-6.el7
  python-backports.x86_64 0:1.0-8.el7
  python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7
  python-ipaddress.noarch 0:1.0.16-2.el7
  python-pytoml.noarch 0:0.1.14-1.git7dea353.el7
  python-setuptools.noarch 0:0.9.8-7.el7
  setools-libs.x86_64 0:3.3.8-4.el7
  subscription-manager-rhsm-certificates.x86_64 0:1.21.10-3.el7.centos
  yajl.x86_64 0:2.0.4-4.el7

完了しました!

docker 서비스 자동 시작 설정


$ sudo systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

docker 서비스 시작 및 확인


$ sudo systemctl start docker
$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since 金 2019-06-07 14:42:00 JST; 23s ago
     Docs: http://docs.docker.com
 Main PID: 20950 (dockerd-current)
   CGroup: /system.slice/docker.service
           tq20950 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --defau...
           mq20958 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock ...

Fess 이미지 얻기


$ sudo docker pull codelibs/fess:latest
Trying to pull repository docker.io/codelibs/fess ...
latest: Pulling from docker.io/codelibs/fess
e79bb959ec00: Pull complete
d4b7902036fe: Pull complete
1b2a72d4e030: Pull complete
de423484a946: Pull complete
9ce08128c662: Pull complete
53b0cf80b370: Pull complete
52bd533f444d: Pull complete
f39d9fa4825b: Pull complete
ffbf2fa304a8: Pull complete
560b4917ad19: Pull complete
b19453126120: Pull complete
3e02eca524a0: Pull complete
5145f1f6b740: Pull complete
9c0519ef74ee: Pull complete
Digest: sha256:f8c9818af2035b2b5489756c609bf973f8cc02c460874f4f9e5e8672f7c105c9
Status: Downloaded newer image for docker.io/codelibs/fess:latest

Fess의 도커 컨테이너 만들기



docker의 컨테이너 이름은 "전체 텍스트 검색"을 영어로 번역하면 "Full text search"가 되기 때문에 이니셜을 취하여 "fts"로 했습니다.
또, 메인 서비스가 fess가 되기 때문에, 포트 지정해 연결이 없어도 좋도록(듯이) 호스트의 80번 포트를 컨테이너내의
fess의 8080 포트에 매핑하고 있습니다.
$ sudo docker run -d -p 80:8080 --name fts codelibs/fess:latest
c266e8c6c14d2514a60d987d1beb4c6c5a187b2ba5142a6087a464fc3261b17b

컨테이너의 시간대 변경



컨테이너의 OS 환경의 표준 시간대가 UTC이므로 일본 시간의 JST로 변경합니다.
$ sudo docker exec -it fts rm /etc/localtime
$ sudo docker exec -it fts ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# 時間確認
$ sudo docker exec -it fts date
Fri Jun  7 15:01:10 JST 2019
$ sudo docker exec -it fts ls -l /etc/localtime
lrwxrwxrwx 1 root root 30 Jun  7 15:00 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo

Fess 동작 확인



curl에서 80번 포트에 HTTP하여 헤더를 읽을 수 있는지 확인합니다.
$ curl --head http://localhost
HTTP/1.1 200
Set-Cookie: JSESSIONID=4937956A71BB0E6DE7D7B974BB39D7F0; Path=/; HttpOnly
Pragma: no-cache
Cache-Control: no-cache, no-store
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 07 Jun 2019 06:08:41 GMT

브라우저 동작 확인




브라우저로 액세스하여 Fess 페이지가 표시되면 OK.

요약



이러한 느낌으로 매우 쉽게 Fess에 의한 전문 검색 서버의 환경을 구축할 수 있습니다.
실제로 할 수 있다면 알 수 있지만 이미지 다운로드 시간을 제외하고는 몇 분 만에 Fess가
사용 가능한 환경을 구축할 수 있습니다.



할애하고 있습니다만, selinux를 무효, firewalld의 정지를 하고 있습니다.
selinux와 firewalld를 활성화하고 사용하는 경우 또 다른 수고 절차가 필요할 수 있습니다 ...
그 근처는 다른 자세한 분에게 물어보십시오 ... (약한)

다음 번이야말로 PDF 변환 절차의 설명을 씁니다!

좋은 웹페이지 즐겨찾기