Public Repository

Last pushed: 15 hours ago
Short Description
Automated MySQL/MariaDB image built from alpine-s6 on a Raspberry Pi 3/Intel NUC.
Full Description

Alpine-MySQL

Container for Alpine Linux + s6 + MySQL


This image serves as the database container for applications/services
tht require a MySQL or MariaDB database running. If it is required to
run in the same container as the app is running, use this
container as the source. Can create the database specified in the
command line if not exists, has handy backup and restore commands
available inside the image.

Built from my alpine-s6 image using latest available MySQL
and cli client.

Based on Alpine Linux.

The image is tagged respectively for 2 architectures,

  • armhf
  • x86_64

Get the Image


Pull the image for your architecture it's already available from
Docker Hub.

# make pull
docker pull arpanpal010/alpine-mysql:x86_64

Run


# make
docker run --rm -it \
  --name docker_mysql --hostname mysql \
  -e PGID=100 -e PUID=1000 \
  -c 512 -m 512m \
  -p 3306:3306 \
  -v /data:/var/lib/mysql \
  -v /etc/hosts:/etc/hosts:ro \
  -v /etc/localtime:/etc/localtime:ro \
  -e TZ=Asia/Kolkata \
  -e MYSQL_USER=mysql \
  -e MYSQL_USER_PWD=mysqlpassword \
  -e MYSQL_USER_DB=test \
  arpanpal010/alpine-mysql:x86_64

# make stop
docker stop -t 2 docker_mysql

# make rm
# stop first
docker rm -f docker_mysql

# make restart
docker restart docker_mysql

Shell access


# make rshell
docker exec -u root -it docker_mysql /bin/bash

# make shell
docker exec -it docker_mysql /bin/bash

# make logs
docker logs -f docker_mysql

Services


PS: this bit is for dev only as you need the files from the
repo.

# make systemd
# add systemd.service as a service if it exists, load it, and start or restart
# it if already running.

# make backup
# backup databases
# the backup should be named <databasename>.sql and is dropped
  inside /var/lib/mysql/backups
docker exec docker_mysql /scripts/run.sh backup <databasename>

# make restore
# restore a single databases
# restores the <databasename> database from the file
# /var/lib/mysql/backups/<databasename>.sql
docker exec docker_mysql /scripts/run.sh restore <databasename>

Development


If you have the repository access, you can clone and
build the image yourself for your own system, and can push after.


Setup


Before you clone the repo, you must have Git, GNU make,
and Docker setup on the machine.

git clone <repository url>
cd <repository>

You can always skip installing make but you will have to
type the whole docker commands then instead of using the sweet
make targets.


Build


To locally build the image for your system.

# make build
docker build --rm --force-rm \
  -t arpanpal010/alpine-mysql:x86_64 \
  --no-cache=true --pull .

# make push
docker push arpanpal010/alpine-mysql:x86_64

Maintenance


Currently built daily on a RaspberryPi3 (armhf builds) or IntelNUC
(x64 builds). Docker hub builds maintained by arpanpal010.

Docker Pull Command
Owner
arpanpal010