Ramdiskは揮発性のDiskなので再起動時に再構築する必要は出るが、UnitTestなどでしばく時、Ramが相手だと心置きなくできるし、SSDより早い。
本来なら、Local環境のDBはSSDに、UnitTest環境のDBはRamdiskに、ってやれればいいんだが。
MacでRamdiskを作るには、下のソースをramdisk.shとでもして実行属性をつけて、起動時に実行させればOK。
#!/usr/bin/env bash
# 512MB 1048576
# 1GB 2097152
# 2GB 4194304
NUMSECTORS=2097152
MOUNTPOINT=/Users/docker/ramdisk
if [ -d "$MOUNTPOINT" ]; then
rm -f -r "$MOUNTPOINT"
fi
mkdir -p "$MOUNTPOINT"
# RAM Disk
RAMDISK=`hdiutil attach -nomount ram://$NUMSECTORS`
newfs_hfs $RAMDISK
mount -t hfs $RAMDISK $MOUNTPOINT
# Make directory
mkdir -p "${MOUNTPOINT}/unittest/mysql/data/"
chmod -R 777 "$MOUNTPOINT"
MOUNTPOINTとかその下のディレクトリ名はよきに計らってもらって、Dockerからマウントする。
volumes:
- /Users/docker/ramdisk/unittest/mysql/data:/var/lib/mysql