MySQL container images based on Red Hat Software Collections and intended for OpenShift and general usage. Users can choose between Red Hat Enterprise Linux, Fedora, and CentOS based images.
The directory passed to s2i build can contain these directories:
mysql-cfg/
When starting the container, files from this directory will be used as a configuration for the mysqld daemon. envsubst command is run on this file to still allow customization of the image using environmental variables
mysql-pre-init/
Shell scripts (*.sh) available in this directory are sourced before mysqld daemon is started.
mysql-init/
Shell scripts (*.sh) available in this directory are sourced when mysqld daemon is started locally. In this phase, use ${mysql_flags} to connect to the locally running daemon, for example mysql $mysql_flags < dump.sql
Variables that can be used in the scripts provided to s2i:
$mysql_flags
arguments for the mysql tool that will connect to the locally running mysqld during initialization
$MYSQL_RUNNING_AS_MASTER
variable defined when the container is run with run-mysqld-master command
$MYSQL_RUNNING_AS_SLAVE
variable defined when the container is run with run-mysqld-slave command
$MYSQL_DATADIR_FIRST_INIT
variable defined when the container was initialized from the empty data dir
During s2i build all provided files are copied into /opt/app-root/src directory into the resulting image. If some configuration files are present in the destination directory, files with the same name are overwritten. Also only one file with the same name can be used for customization and user provided files are preferred over default files in /usr/share/container-scripts/mysql/- so it is possible to overwrite them.
Same configuration directory structure can be used to customize the image every time the image is started using docker run. The directory has to be mounted into /opt/app-root/src/ in the image (-v ./image-configuration/:/opt/app-root/src/).
This overwrites customization built into the image.
This is very similar to the MariaDB: https://github.com/sclorg/mariadb-container/pull/45/
It adds extending support using source-to-image.
For example, to build a customized MariaDB database image
my-mysql-rhel7
with a configuration in~/image-configuration/
run:The directory passed to
s2i build
can contain these directories:mysql-cfg/
When starting the container, files from this directory will be used as a configuration for themysqld
daemon.envsubst
command is run on this file to still allow customization of the image using environmental variablesmysql-pre-init/
Shell scripts (*.sh
) available in this directory are sourced beforemysqld
daemon is started.mysql-init/
Shell scripts (*.sh
) available in this directory are sourced whenmysqld
daemon is started locally. In this phase, use${mysql_flags}
to connect to the locally running daemon, for examplemysql $mysql_flags < dump.sql
Variables that can be used in the scripts provided to s2i:
$mysql_flags
arguments for themysql
tool that will connect to the locally runningmysqld
during initialization$MYSQL_RUNNING_AS_MASTER
variable defined when the container is run withrun-mysqld-master
command$MYSQL_RUNNING_AS_SLAVE
variable defined when the container is run withrun-mysqld-slave
command$MYSQL_DATADIR_FIRST_INIT
variable defined when the container was initialized from the empty data dirDuring
s2i build
all provided files are copied into/opt/app-root/src
directory into the resulting image. If some configuration files are present in the destination directory, files with the same name are overwritten. Also only one file with the same name can be used for customization and user provided files are preferred over default files in/usr/share/container-scripts/mysql/
- so it is possible to overwrite them.Same configuration directory structure can be used to customize the image every time the image is started using
docker run
. The directory has to be mounted into/opt/app-root/src/
in the image (-v ./image-configuration/:/opt/app-root/src/
). This overwrites customization built into the image.