summaryrefslogtreecommitdiffstats
path: root/Services/mariadb
diff options
context:
space:
mode:
Diffstat (limited to 'Services/mariadb')
-rw-r--r--Services/mariadb/Dockerfile32
-rw-r--r--Services/mariadb/docker-compose.yml2
-rw-r--r--Services/mariadb/my.cnf29
-rw-r--r--Services/mariadb/run.sh78
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