Fess:WSL+Ubuntu+Docker環境でのインデックス作成

公開:2026.04.14 11:12

WSL+Ubuntu+Docker環境でのインデックス作成

WSL Docker上に構築したFessからWSLホストのWindows上に配置したドキュメントファイルのインデックスを作成したい。

なぜかいつも苦労する。
smb://・・で指定してもうまく行かないケースが多く、よくわからず色々やっていたらうまくいく。(で、結局何が原因かわからない)
Windows上のドライブはWSL側に自動的にマウントされ Ubuntuからは /mnt/x/・・でアクセス可能である。
なので、このパスをDockerから参照する方向とする。


環境

ホスト:Windows 11 Pro 25H2 (26200.8037)

このWindows上にD:¥documentsフォルダを作成、ここにインデックス化したいドキュメント一式を配置する。

WSL+Ubuntu+Docker

WSL上にUbuntuをインストールし、Ubuntu上にDocker Engine環境を作成。
UbuntuからWindows上のインデックスフォルダは /mnt/d/documents/ で参照可能である。

Fess
Docker上にFess環境を構築。

手順

1. composer.yaml修正

Ubuntuの/mnt/d/documentsをコンテナから/var/fess/documents/ でアクセスできるよう、composeer.yamlに以下volumnes:記述を追加。

:
services:
fess:
image: codelibs/fess:latest
ports:
- "8080:8080"
volumes:
- /mnt/d/documents:/var/fess/documents

2. コンテナ再作成

すでにFessコンテナ作成済みであれば再作成が必要なので "docker compose down"したのちに "docker compose up"で作成する。

docke compose -f composer -f compose.yaml -f composer-opensarch3.yaml down
docke compose -f composer -f compose.yaml -f composer-opensarch3.yaml up -d

実行結果:

root@xxx:~/fess-docker# docker compose -f compose.yaml -f compose-opensearch3.yaml down
[+] down 3/3
 ✔ Container fess01               Removed                                                                                                              10.5s
 ✔ Container search01             Removed                                                                                                               0.6s
 ✔ Network fess-docker_search_net Removed                                                                                                               0.6s
root@xxx:~/fess-docker# docker compose -f compose.yaml -f compose-opensearch3.yaml up -d
[+] up 3/3
 ✔ Network fess-docker_search_net Created                                                                                                               0.0s
 ✔ Container search01             Healthy                                                                                                              15.7s
 ✔ Container fess01               Started                                                                                                              15.8s
    

3. アクセス確認

コンテナからWindows上のファイルが参照できるか確認する。

docker exec -it fess01 /bin/bash
ls /var/fess/documents

実行結果:

root@xxx:~/fess-docker# docker exec -it fess01 /bin/bash
26423820c2de:/usr/share/fess# ls /var/fess/documents
TEST.txt
    
アクセスできることが確認できた。

Fess:Dockerコンテナを削除する方法

公開:2026.04.14 10:17

FessのDockerコンテナを削除する方法

Fess環境をいったん全削除して作り直したいのでFessのDockerコンテナを削除したい。

Fessのcompose.yaml、compose-opensearch3.yamlを格納したフォルダ(手順書通りにやっていれば ~/fess-docker/)をカレントディレクトリに移動した後、以下コマンドを実行する。

docker compose -f compose.yaml -f compose-opensearch3.yaml down -v

-fでCompose設定ファイルの場所を指定、-vでボリュームを削除

実行結果:

root@xxx:~/fess-docker# docker compose -f compose.yaml -f compose-opensearch3.yaml down -v
[+] down 5/5
 ✔ Container fess01                       Removed                                                                                                      10.6s
 ✔ Container search01                     Removed                                                                                                       0.9s
 ✔ Volume fess-docker_search01_dictionary Removed                                                                                                       0.0s
 ✔ Network fess-docker_search_net         Removed                                                                                                       0.3s
 ✔ Volume fess-docker_search01_data       Removed                                                                                                       0.6s
  


Fess Docker

Docker 学習 #3:Dockerfileを学ぶ #2

公開:2026.04.13 16:37

Dockerfileを学ぶ #2

以下記事を参考にDockerfileを使ってみる。
Dockerfileとdocker buildコマンドでDockerイメージの作成

環境

Windows 11 25H2 (26200.8037)

WSLバージョン
PS C:\Users\xxx> wsl --version
WSL バージョン: 2.3.24.0
カーネル バージョン: 5.15.153.1-2
WSLg バージョン: 1.0.65
MSRDC バージョン: 1.2.5620
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.26200.8037

Ubuntuバージョン
xxx@xxx:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble

おさらい

前回までで、やっとDockerfileを使った一覧の動作を試すことができた。
今回は作成したDockerイメージをdocker runで実行する際に指定するパラメータもDockerfileで指定してみよう、という内容。

ちなみに前回使ったdocker runコマンドは以下の感じ。

docker run -d -p 80:80 --name nginx1 takipone/nginx:1.0 /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf

準備

まずは前回実行したコンテナの停止、削除を行う。

docker stop nginx1
docker rm nginx1

CMD命令とENTRYPOINT命令

コンテナ起動時に実行するコマンドを指定するために CMD命令、ENTRYPOINT命令が使える。

ENTRYPOINT命令は、コンテナのデフォルトの実行可能ファイルを設定する。
つまり、コンテナ起動時に必ず実行するコマンドのこと。
docker runで指定した引数は、このETNRYPOINT命令で指定したコマンドへの引数として追加される。
基本はENTRYPOINT命令で指定した内容が必ず実行されるが docker runコマンド実行時に --entrypointフラグでコマンドを指定するとENTRYPOINT命令で設定したコマンドは上書きされる。

CMD命令は、コンテナがDockerイメージから起動された時に実行する規定のコマンドを指定する。
docker runでコマンドを指定しなければCMD命令で指定した値が使用される。
docker runコマンドでコマンドライン引数を指定した場合、CMD命令で値はdocker runコマンドで指定した値で上書きされる。


手順

1. Dockerfile修正

ということでDockerfileの最後に nginxを起動するためのコマンドをENTRYPOINT命令で追加してみる。

FROM ubuntu
LABEL maintainer="xxxx@gmail.com"
RUN apt-get update && apt-get install -y nginx
COPY index.html /var/www/html/
ENTRYPOINT /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf

2. Dockerイメージ作成

前回作成したイメージは残しておいて、タグ名を"1.0"→"1.1"としてDockerイメージを作成する。

docker build -t takipone/nginx:1.1 .

実行結果:
エラーが出てしまった。

root@xxx:~/nginx1# docker build -t takipone/nginx:1.1 .
[+] Building 1.8s (8/8) FINISHED                                                             docker:default
 => [internal] load build definition from Dockerfile                                                   0.0s
 => => transferring dockerfile: 233B                                                                   0.0s
 => [internal] load metadata for docker.io/library/ubuntu:latest                                       1.2s
 => [internal] load .dockerignore                                                                      0.0s
 => => transferring context: 2B                                                                        0.0s
 => [1/3] FROM docker.io/library/ubuntu:latest@sha256:84e77dee7d1bc93fb029a45e3c6cb9d8aa4831ccfcc7103  0.1s
 => => resolve docker.io/library/ubuntu:latest@sha256:84e77dee7d1bc93fb029a45e3c6cb9d8aa4831ccfcc7103  0.1s
 => [internal] load build context                                                                      0.0s
 => => transferring context: 31B                                                                       0.0s
 => CACHED [2/3] RUN apt-get update && apt-get install -y nginx                                        0.0s
 => CACHED [3/3] COPY index.html //var/www/html/                                                       0.0s
 => exporting to image                                                                                 0.2s
 => => exporting layers                                                                                0.0s
 => => exporting manifest sha256:2e80db00b8f0856137d07781f95cc7ad752063fcc6f1b60af169452a1f606d4d      0.0s
 => => exporting config sha256:37913b24c791dbdcec5e27f3c073eb2c0edaf964721fbcedf0d68f2f4986cae2        0.0s
 => => exporting attestation manifest sha256:c36c542ebf03bb8d62154eafb8952713e741fde0afc3ff63a9651c00  0.1s
 => => exporting manifest list sha256:77ad25ee6bfc7edff996be2e559248ab075030d74a1d86d1ace3fcb66d503f3  0.0s
 => => naming to docker.io/takipone/nginx:1.1                                                          0.0s
 => => unpacking to docker.io/takipone/nginx:1.1                                                       0.0s

 1 warning found (use docker --debug to expand):
 - JSONArgsRecommended: JSON arguments recommended for ENTRYPOINT to prevent unintended behavior related to OS signals (line 5)
    

Dockerfileを学ぶ #2

以下記事を参考にDockerfileを使ってみる。
Dockerfileとdocker buildコマンドでDockerイメージの作成

環境

Windows 11 25H2 (26200.8037)

WSLバージョン
PS C:\Users\xxx> wsl --version
WSL バージョン: 2.3.24.0
カーネル バージョン: 5.15.153.1-2
WSLg バージョン: 1.0.65
MSRDC バージョン: 1.2.5620
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.26200.8037

Ubuntuバージョン
xxx@xxx:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble

おさらい

前回までで、やっとDockerfileを使った一覧の動作を試すことができた。
今回は作成したDockerイメージをdocker runで実行する際に指定するパラメータもDockerfileで指定してみよう、という内容。

ちなみに前回使ったdocker runコマンドは以下の感じ。

docker run -d -p 80:80 --name nginx1 takipone/nginx:1.0 /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf

準備

まずは前回実行したコンテナの停止、削除を行う。

docker stop nginx1
docker rm nginx1

CMD命令とENTRYPOINT命令

コンテナ起動時に実行するコマンドを指定するために CMD命令、ENTRYPOINT命令が使える。

ENTRYPOINT命令は、コンテナのデフォルトの実行可能ファイルを設定する。
つまり、コンテナ起動時に必ず実行するコマンドのこと。
docker runで指定した引数は、このETNRYPOINT命令で指定したコマンドへの引数として追加される。
基本はENTRYPOINT命令で指定した内容が必ず実行されるが docker runコマンド実行時に --entrypointフラグでコマンドを指定するとENTRYPOINT命令で設定したコマンドは上書きされる。

CMD命令は、コンテナがDockerイメージから起動された時に実行する規定のコマンドを指定する。
docker runでコマンドを指定しなければCMD命令で指定した値が使用される。
docker runコマンドでコマンドライン引数を指定した場合、CMD命令で値はdocker runコマンドで指定した値で上書きされる。


手順

1. Dockerfile修正

ということでDockerfileの最後に nginxを起動するためのコマンドをENTRYPOINT命令で追加してみる。

FROM ubuntu
LABEL maintainer="xxxx@gmail.com"
RUN apt-get update && apt-get install -y nginx
COPY index.html /var/www/html/
ENTRYPOINT /usr/sbin/nginx -g 'daemon off;' -c /etc/nginx/nginx.conf

2. Dockerイメージ作成

前回作成したイメージは残しておいて、タグ名を"1.0"→"1.1"としてDockerイメージを作成する。

docker build -t takipone/nginx:1.1 .

実行結果:
なんか警告っぽいのが出た。

root@xxx:~/nginx1# docker build -t takipone/nginx:1.1 .
[+] Building 1.8s (8/8) FINISHED                                                             docker:default
 => [internal] load build definition from Dockerfile                                                   0.0s
 => => transferring dockerfile: 233B                                                                   0.0s
 => [internal] load metadata for docker.io/library/ubuntu:latest                                       1.2s
 => [internal] load .dockerignore                                                                      0.0s
 => => transferring context: 2B                                                                        0.0s
 => [1/3] FROM docker.io/library/ubuntu:latest@sha256:84e77dee7d1bc93fb029a45e3c6cb9d8aa4831ccfcc7103  0.1s
 => => resolve docker.io/library/ubuntu:latest@sha256:84e77dee7d1bc93fb029a45e3c6cb9d8aa4831ccfcc7103  0.1s
 => [internal] load build context                                                                      0.0s
 => => transferring context: 31B                                                                       0.0s
 => CACHED [2/3] RUN apt-get update && apt-get install -y nginx                                        0.0s
 => CACHED [3/3] COPY index.html //var/www/html/                                                       0.0s
 => exporting to image                                                                                 0.2s
 => => exporting layers                                                                                0.0s
 => => exporting manifest sha256:2e80db00b8f0856137d07781f95cc7ad752063fcc6f1b60af169452a1f606d4d      0.0s
 => => exporting config sha256:37913b24c791dbdcec5e27f3c073eb2c0edaf964721fbcedf0d68f2f4986cae2        0.0s
 => => exporting attestation manifest sha256:c36c542ebf03bb8d62154eafb8952713e741fde0afc3ff63a9651c00  0.1s
 => => exporting manifest list sha256:77ad25ee6bfc7edff996be2e559248ab075030d74a1d86d1ace3fcb66d503f3  0.0s
 => => naming to docker.io/takipone/nginx:1.1                                                          0.0s
 => => unpacking to docker.io/takipone/nginx:1.1                                                       0.0s

 1 warning found (use docker --debug to expand):
 - JSONArgsRecommended: JSON arguments recommended for ENTRYPOINT to prevent unintended behavior related to OS signals (line 5)
    

3. Dockerfile修正

警告の意味は、ENTRYPOINTのパラメーターをJSON形式にした方がいいよ、ということらしい。ということでDockerfileを修正する。

FROM ubuntu
LABEL maintainer="xxxx@gmail.com"
RUN apt-get update && apt-get install -y nginx
COPY index.html /var/www/html/
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;", "-c", "/etc/nginx/nginx.conf"]

docker build実行

root@xxx:~/nginx1# docker build -t takipone/nginx:1.1 .
[+] Building 2.2s (8/8) FINISHED                                                             docker:default
 => [internal] load build definition from Dockerfile                                                   0.0s
 => => transferring dockerfile: 247B                                                                   0.0s
 => [internal] load metadata for docker.io/library/ubuntu:latest                                       1.6s
 => [internal] load .dockerignore                                                                      0.0s
 => => transferring context: 2B                                                                        0.0s
 => [1/3] FROM docker.io/library/ubuntu:latest@sha256:84e77dee7d1bc93fb029a45e3c6cb9d8aa4831ccfcc7103  0.1s
 => => resolve docker.io/library/ubuntu:latest@sha256:84e77dee7d1bc93fb029a45e3c6cb9d8aa4831ccfcc7103  0.1s
 => [internal] load build context                                                                      0.0s
 => => transferring context: 31B                                                                       0.0s
 => CACHED [2/3] RUN apt-get update && apt-get install -y nginx                                        0.0s
 => CACHED [3/3] COPY index.html //var/www/html/                                                       0.0s
 => exporting to image                                                                                 0.2s
 => => exporting layers                                                                                0.0s
 => => exporting manifest sha256:7ae563324ed96ed865d90d4b838f4137b3ceae058030c51a857930b04da23971      0.0s
 => => exporting config sha256:f178d674921f316b017b996de84a119e88b579352d6e851e96a67f3357f0c923        0.0s
 => => exporting attestation manifest sha256:1cff542974d56aa19b0c5f3942426389a478953a8fea547ae729c98d  0.1s
 => => exporting manifest list sha256:446704b9a6dea8067f20e28c117d7dea2947e090d1d8c006e6b810dd5732b0c  0.0s
 => => naming to docker.io/takipone/nginx:1.1                                                          0.0s
 => => unpacking to docker.io/takipone/nginx:1.1                                                       0.0s
    

今度はうまくいった。

4. コンテナ起動

作成したDockerイメージを nginx2 の名前で実行してみる。
今回はnginxの起動もDockerfileに含んでいるのでその辺りの記述が不要になっている。

docker run -d --name nginx2 -p 80:80 takipone/nginx:1.1

問題なく動作した。

root@xxx:~/nginx1# docker run -d --name nginx2 -p 80:80 takipone/nginx:1.1
f0ca46cc8fb05fe1a709b0b8479302e4721b68655f3b7d5b07906b3d7d02f009
root@xxx:~/nginx1# curl localhost
Hello!
    


Docker 学習

その他の記事