Running FileMaker Server in Docker Desktop

Being able to develop and test your solutions within a FileMaker Server environment is the ideal scenario. You can test Perform Script On Server, external binaries, and plug-ins that perform a variety of tasks. Essentially, you can perform all the necessary tasks in a real solution.

When you develop your FileMaker solution locally with a single copy of Claris/FileMaker Pro, you not only face limitations in what you can test but also risk the possibility of a crash. While running FileMaker Server on your local machine is a satisfactory solution, the next step is being able to run multiple versions of FileMaker Server without the need for multiple uninstall/install scenarios.

This video showcases my return to using Docker Desktop on an M1 Mac Studio ARM-based machine. Previously, I had to stop using Docker and resort to a full virtual machine when I switched to using Apple Silicon. However, with the release of an ARM-based version of FileMaker Server and most plug-ins being available for the ARM architecture, we are now able to use Docker Desktop again. The trick lies in learning how to use containers. This video provides a great opportunity to learn a new skill. If you want to run multiple variations of FileMaker Server on your M1 or M2 Mac, this video has what you need.

Comments

Thanks for taking the time to make great videos. Looking forward to setting up Docker and FMS.

---- Nash

I can't seem to find where the resource files are on the FDS area on Claris. Is there a link that you can post to these files?

Thanks

-- Nash

---- Nash

The files you need are part of a FileMaker Server installation. You need to install a Linux FileMaker server somewhere then you'll find them within a Tools subfolder.

Installing into a local VM (Parallels, VM Ware, VirtualBox) will give you access to the Docker files.

-- Matt Petrowsky - ISO FileMaker Magazine Editor

If you have problems with the docker build command failing then you may need to add --network=host to get a successful build.

-- Matt Petrowsky - ISO FileMaker Magazine Editor

I ran into issues trying to set this up the way you did in the video. The method in the video ends up being shared resources with bind mounts. Every time I tried (and I've tried for 2 days now), I would get privilege (r/w/x) issues when the FMS installer would try and set the license data in CStore. I set user and group to myself and made sure over and over that privileges on the folders were correct. I even tried moving the mount point on the host to my desktop and allowed Mac security for Docker to access that directory. Still no luck.

I ended up switching to using Docker Volumes. It will be a pain to move databases in and out of the volume, but it is working now.

Any idea why I was running into privilege issues? When the FMS install script first creates the license folder in CStore, the license folder has no privileges (i.e. d---------). This made it unusable.

When setting up on another machine I found an obscure comment within the issue queue of Docker for mac.

Check your General settings in Docker and see if the bind mounts are using the default VirtioFS. If so, then switch to gRPC FUSE and see if that fixes any permissions issues.

Further research has shown other issues related to performance and the default VirtioFS.

https://github.com/docker/for-mac/issues/6667

And funny enough...

It was this issue that got me to check the file system I had used when setting up on my M1. https://github.com/docker/for-mac/issues/6958 I had just purchased an M2 laptop and while this was unrelated, it did trigger a memory I had about prior permissions issues and having to switch to gRPC FUSE because it's older and possibly a bit more stable for some types of images/containers with local binds.

-- Matt Petrowsky - ISO FileMaker Magazine Editor

That worked! It was the wildest issue. Within the container, I could make files or directories in local binds when I did it from a container command line, but the apt install process within the container would fail when it tried to make a directory.

Thanks for the fix. I'll also re-post your fix on the FM community post I made.

Thank you for all the content here Matt; this is a great resource!

Alex