firebirdsql/firebird
Docker images for Firebird Database
1.6K
Docker images for Firebird Database.
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 firebirdsql/firebird
Docker Compose
services:
firebird:
image: firebirdsql/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 firebirdsql/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
docker pull firebirdsql/firebird