From 67a4c6763bf7492d69686abd1a5016f6eb68963f Mon Sep 17 00:00:00 2001
From: Dennis Postma <dennis@directonline.io>
Date: Fri, 7 Feb 2025 00:54:44 +0100
Subject: [PATCH] Added MySQL to dockerfile

---
 Dockerfile | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index ab71619..796e788 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,8 +1,11 @@
 # Use the official Node.js 22.4.1 image
 FROM node:22.4.1-alpine
 
-# Install Redis and tmux
-RUN apk add --no-cache redis tmux
+# Install Redis, MySQL, and tmux
+RUN apk add --no-cache redis mysql mysql-client tmux && \
+    mkdir -p /run/mysqld && \
+    chown -R mysql:mysql /run/mysqld && \
+    mysql_install_db --user=mysql --datadir=/var/lib/mysql
 
 # Set the working directory in the container
 WORKDIR /usr/src/
@@ -13,11 +16,8 @@ COPY package*.json ./
 # Install application dependencies
 RUN npm install
 
-# Copy prisma schema
-COPY prisma ./prisma/
-
-# Generate Prisma client
-RUN npx prisma generate
+# Import migrations
+RUN npx mikro-orm migration:up
 
 # Copy the rest of your application code to the container
 COPY . .
@@ -25,12 +25,14 @@ COPY . .
 # Build the application
 RUN npm run build
 
-# Expose the ports your Node.js application and Redis will listen on
-EXPOSE 80 6379
+# Expose the ports your Node.js application, Redis, and MySQL will listen on
+EXPOSE 80 6379 3306
 
-# Create a shell script to run Redis, run migrations, and start the application in a tmux session
+# Create a shell script to run Redis, MySQL, run migrations, and start the application in a tmux session
 RUN echo '#!/bin/sh' > /usr/src/start.sh && \
     echo 'redis-server --daemonize yes' >> /usr/src/start.sh && \
+    echo 'mysqld --user=mysql --datadir=/var/lib/mysql &' >> /usr/src/start.sh && \
+    echo 'sleep 10' >> /usr/src/start.sh && \
     echo 'npx prisma migrate deploy' >> /usr/src/start.sh && \
     echo 'tmux new-session -d -s nodeapp "node dist/server.js"' >> /usr/src/start.sh && \
     echo 'echo "App is running in tmux session. Attach with: tmux attach-session -t nodeapp"' >> /usr/src/start.sh && \