diff options
Diffstat (limited to 'Services/mariadb')
-rw-r--r-- | Services/mariadb/Dockerfile | 32 | ||||
-rw-r--r-- | Services/mariadb/docker-compose.yml | 2 | ||||
-rw-r--r-- | Services/mariadb/my.cnf | 29 | ||||
-rw-r--r-- | Services/mariadb/run.sh | 78 |
4 files changed, 120 insertions, 21 deletions
diff --git a/Services/mariadb/Dockerfile b/Services/mariadb/Dockerfile index 047cdda..fbeacce 100644 --- a/Services/mariadb/Dockerfile +++ b/Services/mariadb/Dockerfile @@ -3,27 +3,27 @@ MAINTAINER Christophe LARUE <dev@startx.fr> USER root RUN dnf -y install mariadb-common mariadb-libs mariadb-config mariadb-errmsg mariadb-server mariadb \ - && dnf clean all \ - && mkdir -p /var/logs/mariadb \ - && touch /var/logs/mariadb/.keep /var/lib/mariadb/.keep \ - && chown -R mariadb:mariadb /var/logs/mariadb /var/lib/mariadb \ - && mkdir -p /tmp/sql -ENV STARTUPLOG=/data/logs/mariadb/startup.log + && dnf clean all && \ + mkdir -p /tmp/sql +ENV MY_CONF=/etc/my.cnf \ + STARTUPLOG=/data/logs/mariadb/startup.log \ + LOG_PATH=/data/logs/mariadb \ + DATA_PATH=/data/mariadb \ + LOADSQL_PATH=/tmp/sql COPY *.sh /bin/ -COPY *.sql /tmp/sql/ +COPY my.cnf $MY_CONF +COPY *.sql $LOADSQL_PATH/ RUN chmod 775 /bin/run.sh && \ + chmod ug+r $MY_CONF && \ mkdir /data && \ - mkdir /data/mariadb && \ mkdir /data/logs && \ - mkdir /data/logs/mariadb && \ - touch $STARTUPLOG -COPY ./ /data/www -RUN rm -f /data/www/Dockerfile /data/www/httpd.conf /data/www/run.sh /data/www/sx-httpd.sh && \ - chown -R apache:apache /data/www /data/logs -RUN chmod ug+rx /sx/mariadb* /tmp/sql \ - && chown -R mysql:mysql /sx/mariadb* /tmp/sql + mkdir $DATA_PATH && \ + mkdir $LOG_PATH && \ + touch $STARTUPLOG && \ + touch $DATA_PATH/.keep && \ + chown -R mariadb:mariadb $LOG_PATH $DATA_PATH $LOADSQL_PATH EXPOSE 3306 -VOLUME ["/data/mariadb", "/var/logs/mariadb"] +VOLUME [$DATA_PATH,$LOG_PATH] CMD ["/sx/run.sh"]
\ No newline at end of file diff --git a/Services/mariadb/docker-compose.yml b/Services/mariadb/docker-compose.yml index 62ae6b8..b1f6807 100644 --- a/Services/mariadb/docker-compose.yml +++ b/Services/mariadb/docker-compose.yml @@ -1,4 +1,4 @@ -mariadb: +server: build: ./ # image: sx-mariadb container_name: "sx-mariadb" diff --git a/Services/mariadb/my.cnf b/Services/mariadb/my.cnf new file mode 100644 index 0000000..ac882ac --- /dev/null +++ b/Services/mariadb/my.cnf @@ -0,0 +1,29 @@ +[mysqld] +datadir=/var/lib/mysql +socket=/var/lib/mysql/mysql.sock +# Disabling symbolic-links is recommended to prevent assorted security risks +symbolic-links=0 +# Settings user and group are ignored when systemd is used. +# If you need to run mysqld under a different user or group, +# customize your systemd unit file for mysqld/mariadb according to the +# instructions in http://fedoraproject.org/wiki/Systemd + +# Currently, there are mariadb and community-mysql packages in Fedora. +# This particular config file is included in respective RPMs of both of them, +# so the following settings are general and will be also used by both of them. +# Otherwise the RPMs would be in conflict. +# Settings for particular implementations like MariaDB are then +# defined in appropriate sections; for MariaDB server in [mariadb] section in +# /etc/my.cnf.d/server.cnf (part of mariadb-server). +# It doesn't matter that we set these settings only for [mysqld] here, +# because they will be read and used in mysqld_safe as well. +log-error=/var/log/mysqld.log +pid-file=/var/run/mysqld/mysqld.pid + +[mysqld_safe] + +# +# include all files from the config directory +# +!includedir /etc/my.cnf.d + diff --git a/Services/mariadb/run.sh b/Services/mariadb/run.sh index a59a9af..cd22b99 100644 --- a/Services/mariadb/run.sh +++ b/Services/mariadb/run.sh @@ -1,14 +1,84 @@ #!/bin/bash source /bin/sx-lib.sh -source /bin/sx-httpd.sh + +function check_mariadb_environment { + check_environment + if [ ! -v SERVER_NAME ]; then + SERVER_NAME="localhost" + export SERVER_NAME + echo "! WARNING : environment var SERVER_NAME is missing..." + echo "! WARNING : auto-assigned value : $SERVER_NAME" + fi + if [ ! -v DOC_ROOT ]; then + DOC_ROOT="/data/apache" + export DOC_ROOT + fi + if [ ! -v APP_PATH ]; then + APP_PATH="/data/apache" + export APP_PATH + fi + if [ ! -v LOG_PATH ]; then + LOG_PATH="/data/logs/apache" + export LOG_PATH + fi +} + +function display_container_mariadb_header { + echo "+=====================================================" + echo "| Container : $HOSTNAME" + echo "| OS : $(</etc/redhat-release)" + echo "| Engine : " mysql -V + if [ -v CONTAINER_TYPE ]; then + echo "| Type : $CONTAINER_TYPE" + fi + if [ -v CONTAINER_INSTANCE ]; then + echo "| Instance : $CONTAINER_INSTANCE" + fi + if [ -v CONTAINER_SERVICE ]; then + echo "| Service : $CONTAINER_SERVICE" + fi + if [ -v CONTAINER_SERVICE ]; then + echo "| ServerName : $SERVER_NAME" + fi + if [ -v APP_PATH ]; then + echo "| Data path : $DATA_PATH" + fi + if [ -v LOG_PATH ]; then + echo "| Log path : $LOG_PATH" + fi + if [ -v LOADSQL_PATH ]; then + echo "| sql path : $LOADSQL_PATH" + fi + echo "+=====================================================" +} + + +# Begin configuration before starting daemonized process +# and start generating host keys +function begin_config { + echo "=> BEGIN MARIADB CONFIGURATION" +} + +# End configuration process just before starting daemon +function end_config { + echo "=> END MARIADB CONFIGURATION" +} + +# Start the mariadb server as a deamon and execute it inside +# the running shell +function start_daemon { + echo "=> Starting mariadb daemon ..." + display_container_started + exec mysqld_safe +} + if [[ "$0" == *"run.sh" && ! $1 = "" ]];then eval "$@"; fi -check_environment | tee -a $STARTUPLOG -check_httpd_environment | tee -a $STARTUPLOG -display_container_httpd_header | tee -a $STARTUPLOG +check_mariadb_environment | tee -a $STARTUPLOG +display_container_mariadb_header | tee -a $STARTUPLOG begin_config | tee -a $STARTUPLOG end_config | tee -a $STARTUPLOG display_container_started | tee -a $STARTUPLOG |