Skip to content

Base image for the Firefly III and Data Importer Docker containers

License

Notifications You must be signed in to change notification settings

firefly-iii/base-image

Repository files navigation

Base image for Firefly III

Packagist License Donate using GitHub Docker Stars Docker Pulls


Firefly III

Firefly III

A free and open source personal finance manager

This is the repository that holds the "base" images for Firefly III and the Firefly III Data Importer. Both tools need this base image to run correctly. The Dockerfiles for this base image is stored and built on GitHub.

There are two variants of the base image, and they both come in two labels. You can find the images on Docker Hub or by pulling fireflyiii/base.

Base image (web version)

The web version of the base image is built from serversideup/php:8.4-fpm-nginx. In Dockerfile-web.original you can see that the base image adds some scripts and installs some PHP extensions.

It is labeled as either latest or develop, with the latter being a test- and development version of the image (it may be unstable).

Base image (CLI version)

The CLI version of the base image is built from serversideup/php:8.4-cli. In Dockerfile-cli.original you can see a similar process as the web version. Scripts are added and PHP extensions are installed.

It is labeled as either latest-cli or develop-cli, with the latter being a test- and development version of the image (it may be unstable).

Build process

Dockerfile-cli.original and Dockerfile-web.original are converted into Dockerfile.cli and Dockerfile.web respectively. This is not just because these are two different images, but also because the Dockerfile contains labels which are updated dynamically before each run. You can see the text %BASE_IMAGE_BUILD_NO% in the original files, which is replaced with the actual build number in the resulting Dockerfile. You can see how this is done in generate-docker-files.php.

Adding the build number to the build this way helps me debug issues. When Firefly III (or the data importer) starts, it reports both the build number of the base image as the build number of the container itself.

CLI versus web

The CLI version of the Docker container is only used by the data importer. It will not start a web server (nor does it have the necessary code) and is used to import data over the command line.

How to use?

The base image can be found on Docker Hub, or used by pulling fireflyiii/base:latest. Keep in mind that the base image itself does nothing and will probably not even start: you will probably get an error about the script entrypoint.sh missing, because that script is included by Firefly III or the Data Importer when those images are built. You can read more about those images on Azure DevOps: Firefly III on Azure DevOps and the Data Importer on Azure DevOps.

Do you need help, or do you want to get in touch?

Do you want to contact me? You can email me at james@firefly-iii.org or get in touch through one of the following support channels:

Support the development of Firefly III

If you like Firefly III and if it helps you save lots of money, why not send me a dime for every dollar saved! 🥳

OK that was a joke. If you feel Firefly III made your life better, please consider contributing as a sponsor. Please check out my Patreon and GitHub Sponsors page for more information. You can also buy me a ☕️ coffee at ko-fi.com. Thank you for your consideration.