Run FileMaker Server for Linux in Docker Desktop for Mac or Windows. Everything you need to automatically build a ready-to-run Docker image. Works for versions >= 19.4 (Ubuntu).
Important
|
CentOS installation script is still broken and it seems pointless to me to invest more effort. Tell me, if you think it’s not! So, only supporting FileMaker Server 19.4 now, as port 16000 is retired now. |
Windows: there are still some issues (see below).
We are constantly improving the scripts and try to get rid of the remaining issues. If you want to stay up-to-date, make sure to watch the repo and maybe follow us on Twitter: @fmgarage
All our FileMaker-based projects and products are prefixed with an F and the T is for tools, technology, tipps&tricks, techniques or open templates for the community. These files are basically examples and demonstrations where you can copy stuff from and include it your individual apps and solutions.
Browse all our FT repos: https://github.com/fmgarage?q=ft-
If you are looking for other ways to run a FileMaker Server for Linux, check out our regarding repos: https://github.com/fmgarage?q=ft-fms-
Download and install the latest version of Docker Desktop and make sure docker is running.
Clone or download the repo and move it to your documents folder. You may rename it to something like
~/Documents/FMS-Linux
Download a copy of the FileMaker Server installer for Linux from your Claris account page, unpack the zip file and move the .deb
package file to the build
folder:
~/fms/build/filemaker-server_19.4.2.204_amd64.deb
You can also put a link into the config.txt instead, the installer will be downloaded then.
You can adjust the settings in the Assisted Install.txt file, but you don’t need to. The server admin console login will be admin/admin then, which can be changed later.
If you have a certificate that you might want to use for this server, simply copy the files (key, cert and intermediate) into the build directory, the installer will automatically look for the appropriate file endings (.pem, .crt and .ca-bundle). If you don' t provide any, you can install them later or select the default self-signed certificate on first admin console launch.
FileMaker Server requires port 5003 to start, so make sure to quit any FileMaker Pro client before proceeding.
Open Terminal.app, drag the install.sh
from the build
folder into the terminal window, hit return and give your server instance a name. Or just let it be tagged with an ID.
After the installation process is finished, check the Dashboard in Docker Desktop, there should be a running container named fms-[name-tag].
Open the admin console by clicking the Open in Browser button in the container actions or try with https://localhost/admin-console/signin.
Mind that:
-
Chrome does not work without a valid certificate
-
Safari lets you bypass the certificate warning
-
Edge lets you bypass the certificate warning, but opened from Docker Dashboard, the URL comes as an
http
link, and you need to appendhttps://
.
Clicking the CLI button will open a terminal window where you can use the fmsadmin command to control your server.
Important
|
As of now, there is a caveat when running both FileMaker Server (in Docker) and FileMaker Pro at the same time on a Windows machine. FileMaker Pro also binds port 5003 (exclusively) on launch, and it is not possible to make a connection to the local server. There is a workaround though: If you open port 5003 before, with a tool like TCP Listen, FileMaker Pro cannot take that port and instead accesses FileMaker Server in the Docker environment. |
Install the Windows Subsystem for Linux WSL first. To do so, follow these instructions: https://docs.microsoft.com/de-de/windows/wsl/install-win10 ("Manual Installation Steps").
Download and install Ubuntu from the Windows Store. The Ubuntu
and Ubuntu 20.04
apps are identical, just make sure it is the one offered by Canonical Group Limited.
When installed, update packages:
sudo apt update
sudo apt upgrade
Most likely, it will be necessary to restart Ubuntu after the update, which in this case is done by leaving the linux environment with
exit
and then starting Ubuntu again.
Now, to provide the necessary systemd service to the Ubuntu host, run this script: https://github.com/damionGans/ubuntu-wsl2-systemd-script
Again, restart Ubuntu by exiting and starting again.
Download and install the latest version of Docker Desktop and make sure docker is running.
In the Docker Desktop settings: Under General, activate WSL2 based engine and under Resources › WSL Integration activate WSL2 support for your Ubuntu installation.
It may be necessary to restart both Docker Desktop and Ubuntu (or even reboot Windows) to get the integration into a working state. You can test and see if docker ps
from the Ubuntu terminal throws any error.
Clone or download and unzip the repo.
Since it is recommended not to mount volumes from the Windows filesystem into a WSL2 Docker container but rather directly from the WSL filesystem, copy the installer into your Linux home directory:
sudo cp -rv /mnt/c/Users/your_windows_username/Downloads/fmg-dockerfms-main/fmg-dockerfms-main/* ~/fms
Download a copy of the FileMaker Server installer for Linux from your Claris account page, unpack the zip file and move the .deb
package file to the build
folder:
~/fms/build/filemaker-server_19.4.2.204_amd64.deb
You can also put a link into the config.txt instead, the installer will be downloaded then.
You can adjust the settings in the Assisted Install.txt file, but you don’t need to. The server admin console login will be admin/admin then, which can be changed later.
If you have a certificate that you might want to use for this server, simply copy the files (key, cert and intermediate) into the build
directory, the installer will automatically look for the appropriate file endings (.pem, .crt and .ca-bundle). If you don' t provide any, you can install them later or select the default self-signed certificate on first admin console launch.
It may be necessary to grant an access rule for Docker Desktop in the Windows firewall when prompted.
Run the installer :
./fms/build/install.sh
When the installation process is finished, your server will be startet automatically.
Open the admin console by clicking the Open in Browser button in the container actions — if that fails, try with https://localhost/admin-console/signin.
Mind that:
-
Chrome does not work without a valid certificate
-
Edge lets you bypass the certificate warning, but opened from Docker Dashboard, the URL comes as an
http
link, and you need to appendhttps://
.
Clicking the CLI button will open a terminal window where you can use the fmsadmin command to control your server.
Folders (for databases, backups…) are created on container start but not reconnected if you reboot and start Docker Desktop again. Existing files will not be overwritten, but new volumes must be created and attached to the local folders.
This happens in the start_server
script, where the wsl directory is checked before starting the container. It is considered a workaround to this issue: docker/for-win/issues/10060
If Docker Desktop for Windows fails to restart, rebooting Windows may be the fastest way solve this.
To handle some issues and restrictions, there are scripts for controlling your server instances in the tools/
subdirectory:
setup_instance.sh
Lets you set an instance name or ID and creates bind volumes. Also looks for fms-data directories.
remove_instance.sh
Removes volumes and container, but not the fms-data directory. Delete instance directory manually.
start_server.sh
Start this server instance.
stop_server.sh
Stops server, you will be prompted to close any open databases.
global_cleanup.sh
This removes any dangling volumes (attached to no container) and also removes the docker network fms-net
, when no container named fms-*
is left.
It is necessary especially on Windows, where bind volumes get recreated after every reboot, and the old ones persist.
At the moment, quitting Docker Desktop will not gracefully close your databases or stop the server. To prevent your databases from being corrupted from a hard shutdown, always stop the container in Docker Dashboard, alternatively with tools/stop_server.sh
or use the fmsadmin stop server
command beforehand.
Relevant directories are being mounted into the container as volumes. These volumes are bound to their corresponding folders on the host in the fms-data
folder. In case the container is removed, it is possible to run a new container with the persisted state with the tools/start_server
script. It is recommended not to edit these files while the server is running.
The directories include databases, logs, configs and extensions.
On Windows, the Linux filesystem can also be mounted as network volume into the Windows Explorer by using a path like:
\\wsl$\your_linux_distro\
Due to permissions, this should only be used read-only.
(macOS only)
If you need more than one instance, you can simply duplicate an installation (will also duplicate settings, logs and databases, setup new instance name with tools/setup_instance
)
It is possible to have multiple instances of these installations, but you can run only one at a time. Each installation is bound to its directory, where the fms-data
(FileMaker Server directories) directory and the .env
(name-tag) file are located.