This repository is made to create Docker containers running FileMaker Server, and optionally Devin.fm.
While this project was made for my own use, it is public and available for others, and I will be maintaining it - So if you experience any problems this document is not able to solve, simply open an issue or contact me
The official Claris FMS-Docker script only supports Ubuntu 20.04 and 22.04.
My repository should work for any UNIX based OS, with these having been tested:
This repository supports FileMaker Server versions 19 through 21, others may work, but were not tested.
The latest tested versions are 21.0.2, 20.3.2, and 19.6.4
Full list of tested versions and compatibilities
This repository has a few git submodules set to private repositories. They are not required for execution of this repository!
The official Claris Docker script directory. The submodule is here for my testing purposes only
To get the Docker FMS installation script as it is provided by Claris, you must have access to a FileMaker Server installation.
Install FileMaker Server 20 on a machine, and you'll find the script in the following path: /opt/FileMaker/FileMaker Server/Tools/Docker
.
The script will be available in the Docker
directory within the FMS-21 installation package
A fork of the official Devin.fm installation script for UNIX (download).
Proposed a modification and sent it to the developers, so that the script works regardless of execution context.
First, download the FileMaker Server installation files.
https://accounts.claris.com/software/license/FMS_LICENSE_CODE
Or use the download script - Based on .env LICENSE
variable
For Devin.fm, also download the installation script, and place it within its installation directory
Place the FileMaker Server installation .deb
file within the appropriate version folder.
If the version folder does not exist, it can be duplicated from one of the other version folders - But dockerfile may need to be modified to update dependencies.
The base image used for preparing the final FMS image is deanayalon/fms-prep.
It can be built manually using the dockerfiles or simply with docker compose build prep
, using the correct environment variables.
The fms-prep container maps the port 10443:443
, for private configuration of the server before committing the final image.
Installation steps:
docker compose up -d prep
If installing Devin.fm, make sure to choose an admin-console password that does NOT contain ':'
- Afterwards, user will be prompted and instructed on how to install Devin.fm
fmsadmin disable schedule 1
from within the containerDo NOT upload the final image publicly, as it includes your admin-console credentials!
It may also include:
The final image is for private use only!
If after having built an FMS image, you want to modify the image, such as modifying the configurations, updating the certificates, and custom installations - You do not need to go through the installation process all over again.
docker compose up -d modify
will create an fms-prep
container based on your existing 'final' FMS image, and bind it to the same mounts and ports as the prep service.The image script will prompt, asking whether you would like to save the existing version tag
By default, the previous version is tagged as IMAGE:TAG-prev
The FileMaker Server backup directories (ClonesOnly, Backups) and the external files (RC_Data_FMS) use bind mounts, so that they are not saved within the Docker volume assigned for FMS.
In order to back the FMS or Devin.fm server itself up, use the backup service: docker compose up backup
This container will archive the volumes assigned to fms and devin into the $DEV_BACKUP_MOUNT/<timestamp>/<volume>.tar.gz
This method may allow one to work with a 'portable' FMS server, and thus, use Devin.fm locally
The restore service is used to decompress backups into their respective containers. To use it: docker compose up restore
This service is not yet ideal and works with a few restrictions:
$DEVIN_VOL
and $FMS_VOL
Make sure the archive names in the latest directory within the dev-backups mount match the volumes set in
.env
, or the restore service will simply not find the correct file to unarchive.I do not know yet how this service behaves with already populated volumes, so currently, it only certainly works with empty volumes.
I will test this out, and may add lines emptying the volumes before restoring the backups
The default mounts used are found within the mounts directory, to use a different path, change the $*_MOUNT
variables in .env.
Make sure the mounted directory has RWX permissions for both the user and group!
Mounted directories:
.fmp12
files made by FileMaker Server full backups.fmp12
files made by FileMaker Server cloning.tar.gz
archives of the $FMS_VOL
and $DEVIN_VOL
volumes, made by the backup serviceThis can be done during the prep stage, but increases the vulnerability of the final image.
Use the copy-db script to copy a database into the fms container. And subsequently, into the $FMS_VOL
volume defined in .env
.
This will handle the necessary permissions, and copy the db into the Databases folder
Will in the future support the Secure folder, custom directories, copying from SCP, and frp, existing Docker volumes
The base compose file, defines prep and fms
Defines environment variables for nginx-proxy, according to .env
When not using proxy, this compose file maps port 443 to host
Not to be confused with the "Restart Database Server" within the Admin Console
Within the fms container
systemctl stop fmshelper
systemctl start fmshelper
If not working, composing the container down and up again may help.
See Errors