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