Create MariaDB Docker container
This commit is contained in:
parent
07cd9518c9
commit
e9e676dd33
27
mariadb.sh
Executable file
27
mariadb.sh
Executable file
@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/mariadb
|
||||
|
||||
# Build Docker container
|
||||
docker build -t mariadb ${SOURCE_DIR}
|
||||
|
||||
# Create MariaDB instance
|
||||
mkdir -p /srv/mariadb/data
|
||||
chown 3306:3306 /srv/mariadb/data
|
||||
docker run --rm --name mariadb -h mariadb -v /srv/mariadb/data:/var/lib/mysql mariadb mysql_install_db --user=mysql
|
||||
|
||||
# Configure MariaDB
|
||||
cp ${SOURCE_DIR}/srv/mariadb/my.cnf /srv/mariadb/my.cnf
|
||||
|
||||
# Enable query logging. Only if the DEBUG environment variable is set
|
||||
if [ ${DEBUG:-0} -eq 1 ]; then
|
||||
sed -i 's/#general_log/general_log/g' /srv/mariadb/my.cnf
|
||||
fi
|
||||
|
||||
# Configure MariaDB service
|
||||
cp ${SOURCE_DIR}/etc/init.d/mariadb /etc/init.d/mariadb
|
||||
rc-update add mariadb boot
|
||||
service mariadb start
|
||||
|
||||
# Configure MariaDB admin
|
||||
cat ${SOURCE_DIR}/adminpwd.sql | docker exec -i mariadb mysql
|
14
mariadb/Dockerfile
Normal file
14
mariadb/Dockerfile
Normal file
@ -0,0 +1,14 @@
|
||||
FROM alpine:3.7
|
||||
MAINTAINER Disassembler <disassembler@dasm.cz>
|
||||
|
||||
RUN \
|
||||
# Create OS user (which will be picked up later by apk add)
|
||||
addgroup -S -g 3306 mysql \
|
||||
&& adduser -S -u 3306 -h /var/lib/mysql -s /bin/nologin -g mysql -G mysql mysql \
|
||||
# Install MariaDB
|
||||
&& apk --no-cache add mariadb mariadb-client
|
||||
|
||||
VOLUME ["/etc/mysql", "/var/lib/mysql"]
|
||||
EXPOSE 3306
|
||||
|
||||
CMD ["mysqld_safe"]
|
5
mariadb/adminpwd.sql
Normal file
5
mariadb/adminpwd.sql
Normal file
@ -0,0 +1,5 @@
|
||||
DELETE FROM mysql.user WHERE User != 'root' OR Host != 'localhost';
|
||||
INSTALL PLUGIN unix_socket SONAME 'auth_socket';
|
||||
UPDATE mysql.user SET plugin='unix_socket';
|
||||
FLUSH PRIVILEGES;
|
||||
DROP DATABASE test;
|
16
mariadb/etc/init.d/mariadb
Executable file
16
mariadb/etc/init.d/mariadb
Executable file
@ -0,0 +1,16 @@
|
||||
#!/sbin/openrc-run
|
||||
|
||||
description="MariaDB docker container"
|
||||
|
||||
depend() {
|
||||
need docker net
|
||||
use dns logger netmount
|
||||
}
|
||||
|
||||
start() {
|
||||
/usr/bin/docker run -d --rm --name mariadb -h mariadb -v /srv/mariadb/my.cnf:/etc/mysql/my.cnf -v /srv/mariadb/data:/var/lib/mysql mariadb
|
||||
}
|
||||
|
||||
stop() {
|
||||
/usr/bin/docker kill mariadb
|
||||
}
|
81
mariadb/srv/mariadb/my.cnf
Normal file
81
mariadb/srv/mariadb/my.cnf
Normal file
@ -0,0 +1,81 @@
|
||||
# Example MariaDB config file for medium systems.
|
||||
#
|
||||
# This is for a system with little memory (32M - 64M) where MariaDB plays
|
||||
# an important part, or systems up to 128M where MariaDB is used together with
|
||||
# other programs (such as a web server)
|
||||
#
|
||||
# MariaDB programs look for option files in a set of
|
||||
# locations which depend on the deployment platform.
|
||||
# You can copy this option file to one of those
|
||||
# locations. For information about these locations, do:
|
||||
# 'my_print_defaults --help' and see what is printed under
|
||||
# Default options are read from the following files in the given order:
|
||||
# More information at: http://dev.mysql.com/doc/mysql/en/option-files.html
|
||||
#
|
||||
# In this file, you can use all long options that a program supports.
|
||||
# If you want to know which options a program supports, run the program
|
||||
# with the "--help" option.
|
||||
|
||||
# The following options will be passed to all MariaDB clients
|
||||
[client]
|
||||
port = 3306
|
||||
socket = /run/mysqld/mysqld.sock
|
||||
|
||||
[mysqld]
|
||||
port = 3306
|
||||
socket = /run/mysqld/mysqld.sock
|
||||
skip-external-locking
|
||||
key_buffer_size = 16M
|
||||
max_allowed_packet = 1M
|
||||
table_open_cache = 64
|
||||
sort_buffer_size = 512K
|
||||
net_buffer_length = 8K
|
||||
read_buffer_size = 256K
|
||||
read_rnd_buffer_size = 512K
|
||||
myisam_sort_buffer_size = 8M
|
||||
|
||||
#general_log = 1
|
||||
|
||||
# Replication Master Server (default)
|
||||
# binary logging is required for replication
|
||||
log-bin=mysql-bin
|
||||
|
||||
# binary logging format - mixed recommended
|
||||
binlog_format=mixed
|
||||
|
||||
# required unique id between 1 and 2^32 - 1
|
||||
# defaults to 1 if master-host is not set
|
||||
# but will not function as a master if omitted
|
||||
server-id = 1
|
||||
|
||||
# Uncomment the following if you are using InnoDB tables
|
||||
innodb_data_home_dir = /var/lib/mysql
|
||||
innodb_data_file_path = ibdata1:10M:autoextend
|
||||
innodb_log_group_home_dir = /var/lib/mysql
|
||||
# You can set .._buffer_pool_size up to 50 - 80 %
|
||||
# of RAM but beware of setting memory usage too high
|
||||
innodb_buffer_pool_size = 16M
|
||||
innodb_additional_mem_pool_size = 2M
|
||||
# Set .._log_file_size to 25 % of buffer pool size
|
||||
innodb_log_file_size = 5M
|
||||
innodb_log_buffer_size = 8M
|
||||
innodb_flush_log_at_trx_commit = 1
|
||||
innodb_lock_wait_timeout = 50
|
||||
|
||||
[mysqldump]
|
||||
quick
|
||||
max_allowed_packet = 16M
|
||||
|
||||
[mysql]
|
||||
no-auto-rehash
|
||||
# Remove the next comment character if you are not familiar with SQL
|
||||
#safe-updates
|
||||
|
||||
[myisamchk]
|
||||
key_buffer_size = 20M
|
||||
sort_buffer_size = 20M
|
||||
read_buffer = 2M
|
||||
write_buffer = 2M
|
||||
|
||||
[mysqlhotcopy]
|
||||
interactive-timeout
|
Loading…
Reference in New Issue
Block a user