Docker で FileMaker Server を立てる方法を書いた。
Docker で FileMaker Server を立てる 2023|荒川仁志
https://note.com/hitoshiarakawa/n/n45593a042abb
しかしこの方法ではその後インストールがうまくいかないケースが多いと分かった。
Docker 版 FileMaker Server インストールテスト | 荒川仁志 公式サイト
https://www.hitoshiarakawa.com/blogs/2024/2024-12-27_docker-filemaker-server-installation-test/
現在は以下の最新の公式ガイド(英語)が公開されているので、Docker で FileMaker Server を立てる方法をまとめ直すことにした。
Running FileMaker Server in a Docker container for Ubuntu 22.04
https://support.claris.com/s/answerview?anum=000043656&language=en_US#install-dependencies
なお、現在の FileMaker Server では簡単に Docker 版の FileMaker Server がインストールするスクリプトが含まれている。しかし README.md を読んでやってもうまくいかなかったので、これまでと同じやり方での Docker インストールにすることにした。
以下のまとめは、分かりやすいように公式ガイドとは少し変えている。
(最初に書いておくと、最終的にはインストールはうまくいかなかった。)
環境:
・Proxmox Version 8.3-1
・Ubuntu Server 22.04.2
・Docker version 27.4.0, build bde2b89
・FileMaker Server 2024(21.1.1)
・macOS Sequoia 15.0.1(作業マシン)
(1)Docker をインストール、起動しておく。
Ubuntu に Docker と docker-compose をインストールする|荒川仁志 https://note.com/hitoshiarakawa/n/na806c9f3c3fb
(2)Ubuntu 22.04 の Docker イメージをダウンロードする。
$ sudo docker pull ubuntu:22.04
(3)FileMaker Server 用のディレクトリーを作成する。
僕は /docker/fms というディレクトリーを作りたいので以下のコマンドを実行する。さらにその fms ディレクトリーへ移動する。
$ mkdir -p docker/fms; cd docker/fms
(4)Dockerfile 用のディレクトリー df を作成、そこへ移動。
$ mkdir df; cd df
(5)Dockerfile という名前のファイルを作成。
$ sudo nano Dockerfile
以下の内容を記述し、保存。
FROM ubuntu:22.04
# update all software download sources
RUN DEBIAN_FRONTEND=noninteractive \
apt update
# upgrade all installed software
# packages
RUN DEBIAN_FRONTEND=noninteractive \
apt full-upgrade -y
# install the FileMaker Server
# dependencies
RUN DEBIAN_FRONTEND=noninteractive \
apt install -y \
acl \
apache2-bin \
apache2-utils \
avahi-daemon \
curl \
fonts-baekmuk \
fonts-liberation2 \
fonts-noto \
fonts-takao \
fonts-wqy-zenhei \
libaio1 \
libantlr3c-3.4-0 \
libavahi-client3 \
libboost-chrono1.74.0 \
libboost-system1.74.0 \
libboost-thread1.74.0 \
libbz2-1.0 \
libc++1-14 \
libcurl3-gnutls \
libcurl4 \
libdjvulibre21 \
libetpan20 \
libevent-2.1-7 \
libexpat1 \
libfontconfig1 \
libfreetype6 \
libgomp1 \
libheif1 \
libicu70 \
libilmbase25 \
libjpeg-turbo8 \
liblqr-1-0 \
liblzma5 \
libodbc1 \
libomp5-14 \
libopencv-core4.5d \
libopencv-highgui4.5d \
libopencv-imgproc4.5d \
libopenexr25 \
libpam0g \
libpng16-16 \
libsasl2-2 \
libtiff5 \
libuuid1 \
libvpx7 \
libwebpdemux2 \
libwebpmux3 \
libxml2 \
libxpm4 \
libxslt1.1 \
libzbar0 \
logrotate \
nginx \
odbcinst1debian2 \
openjdk-17-jdk \
openssl \
policycoreutils \
sysstat \
ufw \
unzip \
zip \
zlib1g
# install user management
RUN DEBIAN_FRONTEND=noninteractive \
apt install -y \
init
# clean up installations
RUN DEBIAN_FRONTEND=noninteractive \
apt --fix-broken install -y
RUN DEBIAN_FRONTEND=noninteractive \
apt autoremove -y
RUN DEBIAN_FRONTEND=noninteractive \
apt clean -y
# document the ports that should be
# published when FileMaker Server
# is installed
EXPOSE 80
EXPOSE 443
EXPOSE 2399
EXPOSE 5003
# when containers run, start this
# command as root to initialize
# user management
USER root
CMD ["/sbin/init"]
(6)5をもとに、fmsdocker:prep というイメージを作成する。
$ sudo docker build -t fmsdocker:prep .
(7)1つ上の階層へ移動。
$ cd ..
インストールファイルを入れる tmp ディレクトリー、およびデータベースを保存する Data ディレクトリー、ライセンスを入れる CStore ディレクトリー、ログを入れる Logs ディレクトリーを作成する。
$ mkdir {tmp,Data,CStore,Logs}
(8)作業マシンの Mac にインストーラーの filemaker-server-21.1.1.40-amd64.deb がある。これを以下のコマンドで、Ubuntu の /home/{ユーザー名}/docker/fms/tmp へ転送する(Terminal で新たに別ウィンドウで開いて作業)。
$ scp -r /{インストーラーのパス}/filemaker-server-21.1.1.40-amd64.deb {Ubuntu のユーザー名}@{Ubuntu の IP アドレス}:/home/{ユーザー名}/docker/fms/tmp
Ubuntu のパスワードを求められるので、入力すると転送が始まる。
同様に LicenseCert.fmcert も同じディレクトリーへ転送しておくとよい。
(9)以下のコマンドで、fmsdocker コンテナを作成、起動する。
$ sudo docker run \
--detach \
--hostname fms-docker \
--name fms-docker \
--privileged \
--publish 80:80 \
--publish 443:443 \
--publish 2399:2399 \
--publish 5003:5003 \
--volume \
/home/{ユーザー名}/docker/fms/tmp:/install \
--volume \
/home/{ユーザー名}/docker/fms/Data:"/opt/FileMaker/FileMaker Server/Data" \
fmsdocker:prep
(10)設定支援インストール(an assisted installation)を使用するため、/home/{ユーザー名}/docker/fms/tmp に Assisted Install.txt を作成する。
$ sudo nano tmp/Assisted\ Install.txt
Assisted Install.txt は FileMaker Server のインストールファイルをダウンロードした際にサンプルファイルが入っている。以下のサイトを参考に記述する。
登録ファイルのカスタマイズ (FileMaker Server のみ) | Claris Server および FileMaker Server ネットワークインストールセットアップガイド https://help.claris.com/ja/server-network-install-setup-guide/content/customize-personalization-file.html
僕は以下のようにした。
[Assisted Install]
License Accepted=1
Deployment Options=0
Admin Console User={Admin Console 用のユーザー名}
Admin Console Password={Admin Console 用のパスワード}
Admin Console PIN={Admin Console 用の4桁の暗証番号}
License Certificate Path={空欄にすることで tmp ディレクトリーの中を見に来るようになる。そのため8で LicenseCert.fmcert を tmp に置いた}
Filter Databases=1
Remove Desktop Shortcut=0
Remove Sample Database=0
Use HTTPS Tunneling=0
Load Previous Configuration=0
Swap File Size=4GB
Swappiness=10
(11)以下のコマンドでコンテナに入る。
$ sudo docker exec -it fms-docker /bin/bash
(12)以下のコマンドでインストールを実行する。
# cd /install
# FM_ASSISTED_INSTALL=/install apt install /install/filemaker-server-21.1.1.40-amd64.deb
しかしここで以下のようなメッセージが表示されて先に進めない。
Error This package is meant for 20 or 22 and can’t be installed on .
試しにバージョン 20.3.2.205 の FileMaker Server のインストーラーを使ってみたが、それでも同じメッセージが出る。Ubuntu 22 用ではなく Ubuntu 20 用のインストーラーで試しても同じメッセージが出る。
Proxmox で Ubuntu 20 を別に立てて、そこでやるとうまくいくのかもしれないが試していない。
Docker は相性問題があったりややこしいので通常の Docker を使わない方法でインストールしようか。
参考:
Claris FileMaker 2024 Technical Specifications
https://support.claris.com/s/article/Claris-FileMaker-2024-Technical-Specifications?language=en_US
開発系エンジニアのためのDocker絵とき入門 | 鈴木亮 | 工学 | Kindleストア | Amazon
https://amzn.to/4fjqPc6