Skip to content

Commit

Permalink
fix user and database init
Browse files Browse the repository at this point in the history
  • Loading branch information
BertrandGouny committed Apr 9, 2018
1 parent b6538f1 commit 3c5aeca
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 19 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project follows MariaDB versioning.

## [10.2.14-1] - 2018-04-09
### Fixed
- User and database init

## [10.2.14] - 2018-03-28
### Changed
- Upgrade MariaDB version to 10.2.14
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
NAME = osixia/mariadb
VERSION = 10.2.14
VERSION = 10.2.14-1

.PHONY: build build-nocache test tag-latest push push-latest release git-tag-version

Expand Down
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

[hub]: https://hub.docker.com/r/osixia/mariadb/

Latest release: 10.2.14 - MariaDB 10.2.14 - [Changelog](CHANGELOG.md) | [Docker Hub](https://hub.docker.com/r/osixia/mariadb/) 
Latest release: 10.2.14-1 - MariaDB 10.2.14 - [Changelog](CHANGELOG.md) | [Docker Hub](https://hub.docker.com/r/osixia/mariadb/) 

**A docker image to run MariaDB with XtraBackup.**
> [MariaDB](https://mariadb.org/)
Expand All @@ -33,7 +33,7 @@ Latest release: 10.2.14 - MariaDB 10.2.14 - [Changelog](CHANGELOG.md) | [Docker
- [Link environment file](#link-environment-file)
- [Make your own image or extend this image](#make-your-own-image-or-extend-this-image)
- [Advanced User Guide](#advanced-user-guide)
- [Extend osixia/mariadb:10.2.14 image](#extend-osixiamariadb10214-image)
- [Extend osixia/mariadb:10.2.14-1 image](#extend-osixiamariadb10214-1-image)
- [Make your own MariaDB image](#make-your-own-mariadb-image)
- [Tests](#tests)
- [Kubernetes](#kubernetes)
Expand All @@ -44,7 +44,7 @@ Latest release: 10.2.14 - MariaDB 10.2.14 - [Changelog](CHANGELOG.md) | [Docker
## Quick start
Run MariaDB docker image:

docker run --name my-mariadb-container --detach osixia/mariadb:10.2.14
docker run --name my-mariadb-container --detach osixia/mariadb:10.2.14-1

This start a new container with a MariaDB server running inside.

Expand Down Expand Up @@ -134,7 +134,7 @@ Or you can set your custom config at run time, by mounting your **my.cnf** file
#### Use autogenerated certificate
By default SSL is enable, a certificate is created with the container hostname (it can be set by docker run --hostname option eg: db.my-company.com).

docker run --hostname db.my-company.com --detach osixia/mariadb:10.2.14
docker run --hostname db.my-company.com --detach osixia/mariadb:10.2.14-1

#### Use your own certificate

Expand All @@ -144,22 +144,22 @@ You can set your custom certificate at run time, by mounting a directory contain
--env MARIADB_SSL_CRT_FILENAME=my-cert.crt \
--env MARIADB_SSL_KEY_FILENAME=my-cert.key \
--env MARIADB_SSL_CA_CRT_FILENAME=the-ca.crt \
--detach osixia/mariadb:10.2.14
--detach osixia/mariadb:10.2.14-1

Other solutions are available please refer to the [Advanced User Guide](#advanced-user-guide)

#### Disable SSL
Add --env MARIADB_SSL=false to the run command :

docker run --env MARIADB_SSL=false --detach osixia/mariadb:10.2.14
docker run --env MARIADB_SSL=false --detach osixia/mariadb:10.2.14-1

### Fix docker mounted file problems

You may have some problems with mounted files on some systems. The startup script try to make some file adjustment and fix files owner and permissions, this can result in multiple errors. See [Docker documentation](https://docs.docker.com/v1.4/userguide/dockervolumes/#mount-a-host-file-as-a-data-volume).

To fix that run the container with `--copy-service` argument :

docker run [your options] osixia/mariadb:10.2.14 --copy-service
docker run [your options] osixia/mariadb:10.2.14-1 --copy-service


### Debug
Expand All @@ -169,11 +169,11 @@ Available levels are: `none`, `error`, `warning`, `info`, `debug` and `trace`.

Example command to run the container in `debug` mode:

docker run --detach osixia/mariadb:10.2.14 --loglevel debug
docker run --detach osixia/mariadb:10.2.14-1 --loglevel debug

See all command line options:

docker run osixia/mariadb:10.2.14 --help
docker run osixia/mariadb:10.2.14-1 --help


## Environment Variables
Expand All @@ -193,7 +193,7 @@ Used when the container is started without an existing database:
```
If you want to set this variable at docker run command add the tag `#PYTHON2BASH:` and convert the yaml in python:

docker run --env MARIADB_ROOT_ALLOWED_NETWORKS="#PYTHON2BASH:['localhost','127.0.0.1','::1']" --detach osixia/mariadb:10.2.14
docker run --env MARIADB_ROOT_ALLOWED_NETWORKS="#PYTHON2BASH:['localhost','127.0.0.1','::1']" --detach osixia/mariadb:10.2.14-1

To convert yaml to python online: http://yaml-online-parser.appspot.com/

Expand All @@ -209,7 +209,7 @@ Used when the container is started without an existing database:
```
If you want to set this variable at docker run command add the tag `#PYTHON2BASH:` and convert the yaml in python:

docker run --env MARIADB_DATABASES="#PYTHON2BASH:[{'products': [{'user': 'password'}, {'user2': 'passw0rd'}]},'posts','tomatoes']" --detach osixia/mariadb:10.2.14
docker run --env MARIADB_DATABASES="#PYTHON2BASH:[{'products': [{'user': 'password'}, {'user2': 'passw0rd'}]},'posts','tomatoes']" --detach osixia/mariadb:10.2.14-1

To convert yaml to python online: http://yaml-online-parser.appspot.com/

Expand All @@ -223,7 +223,7 @@ Used when the container is started without an existing database:
```
If you want to set this variable at docker run command add the tag `#PYTHON2BASH:` and convert the yaml in python:

docker run --env MARIADB_DATABASES="#PYTHON2BASH:[{'boby': 'mcD0nald'},{'billy': 'th3k1ng'},{'tomatoes': 'ketchup'}]" --detach osixia/mariadb:10.2.14
docker run --env MARIADB_DATABASES="#PYTHON2BASH:[{'boby': 'mcD0nald'},{'billy': 'th3k1ng'},{'tomatoes': 'ketchup'}]" --detach osixia/mariadb:10.2.14-1

To convert yaml to python online: http://yaml-online-parser.appspot.com/

Expand Down Expand Up @@ -254,14 +254,14 @@ Other environment variables:
#### Use command line argument
Environment variables can be set by adding the --env argument in the command line, for example:

docker run --env MARIADB_ROOT_USER="JaxTeller" --env MARIADB_ROOT_PASSWORD="Sons Of Anarchy" --detach osixia/mariadb:10.2.14
docker run --env MARIADB_ROOT_USER="JaxTeller" --env MARIADB_ROOT_PASSWORD="Sons Of Anarchy" --detach osixia/mariadb:10.2.14-1

#### Link environment file

For example if your environment file is in : /data/environment/my-env.yaml

docker run --volume /data/environment/my-env.yaml:/container/environment/01-custom/env.yaml \
--detach osixia/mariadb:10.2.14
--detach osixia/mariadb:10.2.14-1

Take care to link your environment file to `/container/environment/XX-somedir` (with XX < 99 so they will be processed before default environment files) and not directly to `/container/environment` because this directory contains predefined baseimage environment files to fix container environment (INITRD, LANG, LANGUAGE and LC_CTYPE).

Expand All @@ -271,13 +271,13 @@ This is the best solution if you have a private registry. Please refer to the [A

## Advanced User Guide

### Extend osixia/mariadb:10.2.14 image
### Extend osixia/mariadb:10.2.14-1 image

If you need to add your custom TLS certificate, bootstrap config or environment files the easiest way is to extends this image.

Dockerfile example:

FROM osixia/mariadb:10.2.14
FROM osixia/mariadb:10.2.14-1
MAINTAINER Your Name <[email protected]>

ADD ssl-certs /container/service/mariadb/assets/certs
Expand Down
12 changes: 10 additions & 2 deletions image/service/mariadb/startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,13 @@ EOSQL
if [ $(complex-bash-env isRow "${!database}") = true ]; then
database=$(complex-bash-env getRowKeyVarName "${!database}")
fi
[ -n "${!database}" ] && echo "GRANT ALL ON \`${!database}\`.* TO '$u'@'%' ;" >> "$TEMP_FILE"

if [ -n "${!database}" ]; then
echo "GRANT ALL ON \`${!database}\`.* TO '$u'@'%' ;" >> "$TEMP_FILE"
else
echo "GRANT ALL ON *.* TO '$u'@'%' ;" >> "$TEMP_FILE"
fi

done

else
Expand All @@ -132,7 +138,9 @@ EOSQL
database=$(complex-bash-env getRowKeyVarName "${!database}")
fi

[ -n "${!database}" ] && echo "CREATE DATABASE IF NOT EXISTS \`${!database}\` ;" >> "$TEMP_FILE"
if [ -n "${!database}" ]; then
echo "CREATE DATABASE IF NOT EXISTS \`${!database}\` ;" >> "$TEMP_FILE"
fi

if [ -n "${users}" ]; then
# add database specific users
Expand Down

0 comments on commit 3c5aeca

Please sign in to comment.