MySQL

MySQL starter template with persistent storage and configurable app credentials.

yaml

docker-compose.yml

services:
  mysql:
    image: mysql:8
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    ports:
      - ${MYSQL_PORT}:3306
    volumes:
      - mysql_data:/var/lib/mysql
volumes:
  mysql_data:

.ENV

.env example

MYSQL_ROOT_PASSWORD=changeme123
MYSQL_DATABASE=appdb
MYSQL_USER=appuser
MYSQL_PASSWORD=changeme123
MYSQL_PORT=3306

deployment

Quick Start

  1. Create a working directory named after the service.
  2. Copy the compose file and generated `.env` into that directory.
  3. Review the variables and replace placeholders with real values.
  4. Run `docker compose up -d`.
mkdir mysql
cd mysql
# create docker-compose.yml
# create .env
docker compose up -d