Docker images for Firebird Database.
ghcr.io/fdcastel/firebird |
Dockerfile |
---|---|
5 , 5.0.1 , latest |
Dockerfile |
bullseye , 5-bullseye , 5.0.1-bullseye |
Dockerfile |
jammy , 5-jammy , 5.0.1-jammy |
Dockerfile |
noble , 5-noble , 5.0.1-noble |
Dockerfile |
5.0.0 |
Dockerfile |
5.0.0-bullseye |
Dockerfile |
5.0.0-jammy |
Dockerfile |
5.0.0-noble |
Dockerfile |
4 , 4.0.5 |
Dockerfile |
4-bullseye , 4.0.5-bullseye |
Dockerfile |
4-jammy , 4.0.5-jammy |
Dockerfile |
4-noble , 4.0.5-noble |
Dockerfile |
4.0.4 |
Dockerfile |
4.0.4-bullseye |
Dockerfile |
4.0.4-jammy |
Dockerfile |
4.0.4-noble |
Dockerfile |
4.0.3 |
Dockerfile |
4.0.3-bullseye |
Dockerfile |
4.0.3-jammy |
Dockerfile |
4.0.3-noble |
Dockerfile |
4.0.2 |
Dockerfile |
4.0.2-bullseye |
Dockerfile |
4.0.2-jammy |
Dockerfile |
4.0.2-noble |
Dockerfile |
4.0.1 |
Dockerfile |
4.0.1-bullseye |
Dockerfile |
4.0.1-jammy |
Dockerfile |
4.0.1-noble |
Dockerfile |
4.0.0 |
Dockerfile |
4.0.0-bullseye |
Dockerfile |
4.0.0-jammy |
Dockerfile |
4.0.0-noble |
Dockerfile |
3 , 3.0.12 |
Dockerfile |
3-bullseye , 3.0.12-bullseye |
Dockerfile |
3-jammy , 3.0.12-jammy |
Dockerfile |
3.0.11 |
Dockerfile |
3.0.11-bullseye |
Dockerfile |
3.0.11-jammy |
Dockerfile |
3.0.10 |
Dockerfile |
3.0.10-bullseye |
Dockerfile |
3.0.10-jammy |
Dockerfile |
3.0.9 |
Dockerfile |
3.0.9-bullseye |
Dockerfile |
3.0.9-jammy |
Dockerfile |
3.0.8 |
Dockerfile |
3.0.8-bullseye |
Dockerfile |
3.0.8-jammy |
Dockerfile |
Firebird 3 does not have an image for Ubuntu 24.04 LTS (Noble Numbat) due to a dependency (
libncurses5
) missing from Ubuntu sources.
Image defaults:
EXPOSE 3050/tcp
VOLUME /var/lib/firebird/data
docker run \
-e FIREBIRD_ROOT_PASSWORD=************ \
-e FIREBIRD_USER=alice \
-e FIREBIRD_PASSWORD=************ \
-e FIREBIRD_DATABASE=mirror.fdb \
-e FIREBIRD_DATABASE_DEFAULT_CHARSET=UTF8 \
-v ./data:/var/lib/firebird/data
--detach ghcr.io/fdcastel/firebird
Docker Compose
services:
firebird:
image: ghcr.io/fdcastel/firebird
restart: always
environment:
- FIREBIRD_ROOT_PASSWORD=************
- FIREBIRD_USER=alice
- FIREBIRD_PASSWORD=************
- FIREBIRD_DATABASE=mirror.fdb
- FIREBIRD_DATABASE_DEFAULT_CHARSET=UTF8
volumes:
- ./data:/var/lib/firebird/data
isql
docker run -it --rm ghcr.io/fdcastel/firebird isql -u SYSDBA -p ************ SERVER:/path/to/file.fdb
The following environment variables can be used to customize the container.
FIREBIRD_ROOT_PASSWORD
Firebird installer generates a one-off password for SYSDBA
and stores it in /opt/firebird/SYSDBA.password
.
If FIREBIRD_ROOT_PASSWORD
is set, SYSDBA
password will be changed. And the file /opt/firebird/SYSDBA.password
will be removed.
FIREBIRD_USER
Creates an user in Firebird security database.
You must inform a password in FIREBIRD_PASSWORD
variable. Otherwise the container initialization will fail.
FIREBIRD_DATABASE
Creates a new database. Ignored if the database already exists.
Database location is /var/lib/firebird/data
. Absolute paths (outside this folder) are allowed.
You may use FIREBIRD_DATABASE_PAGE_SIZE
to set the database page size. And FIREBIRD_DATABASE_DEFAULT_CHARSET
to set the default character set.
FIREBIRD_USE_LEGACY_AUTH
Enables legacy authentication (not recommended).
FIREBIRD_CONF_*
Any variable starting with FIREBIRD_CONF_
can be used to set values in Firebird configuration file (firebird.conf
).
E.g. You can use FIREBIRD_CONF_DataTypeCompatibility=3.0
to set the value of key DataTypeCompatibility
to 3.0
in firebird.conf
.
Please note that keys are case sensitive. And any key not present in firebird.conf
will be ignored.
*_FILE
Any of the previously listed environment variables may be loaded from file by appending the _FILE
suffix to the variable name.
E.g. FIREBIRD_PASSWORD_FILE=/run/secrets/firebird-passwd
will load FIREBIRD_PASSWORD
with the content from /run/secrets/firebird-passwd
file.
Note that both the original variable and its _FILE
variant are mutually exclusive. Trying to use both will cause the container initialization to fail.
When creating a new database with FIREBIRD_DATABASE
environment variable you can initialize it running one or more shell or SQL scripts.
Any file with extensions .sh
, .sql
, .sql.gz
, .sql.xz
and .sql.zst
found in /docker-entrypoint-initdb.d/
will be executed in alphabetical order. .sh
files without file execute permission (+x
) will be sourced rather than executed.
IMPORTANT: Scripts will only run if you start the container with a data directory that is empty. Any pre-existing database will be left untouched on container startup.
The container runs in the UTC
time zone by default. To change this, you can set the TZ
environment variable:
environment:
- TZ=America/New_York
Alternatively, you can use the same time zone as your host system by mapping the /etc/localtime
and /etc/timezone
system files:
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
To generate the source files and build each image from assets.json
configuration file, run:
Invoke-Build
You can then check all created images with:
docker image ls ghcr.io/fdcastel/firebird
To run the test suite for each image, use:
Invoke-Build Test