Added MySQL to dockerfile

This commit is contained in:
Dennis Postma 2025-02-07 00:54:44 +01:00
parent f0c0456121
commit 67a4c6763b

View File

@ -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 && \