33 lines
893 B
Docker
33 lines
893 B
Docker
# Use the official Node.js 20.2.0 image with Alpine Linux as the base image
|
|
FROM node:20.9.0-alpine
|
|
|
|
# Create a directory for the application code
|
|
RUN mkdir -p /usr/src/app
|
|
|
|
# Set the working directory in the container
|
|
WORKDIR /usr/src/app
|
|
|
|
# Copy the package.json and package-lock.json files to the container
|
|
COPY package*.json /usr/src/app/
|
|
|
|
# Install application dependencies
|
|
RUN npm install
|
|
|
|
# Build the application
|
|
RUN npm run build
|
|
|
|
# Copy the rest of your application code to the container
|
|
COPY . /usr/src/app
|
|
|
|
# Expose the port your Node.js application will listen on
|
|
EXPOSE 80
|
|
|
|
# Set environment variables (e.g., your SECRET)
|
|
ENV JWT_SECRET=secret \
|
|
DATABASE_URL=mysql://root:BEVLqLReqUyA@srv-captain--nq-db:3306/new-quest
|
|
|
|
# Use nodemon for development (install it globally)
|
|
RUN npm install -g nodemon
|
|
|
|
# Define the startup command using nodemon
|
|
CMD ["nodemon", "dist/server.js"] |