lego/back-end/Dockerfile.back
2024-10-24 22:20:11 +02:00

44 lines
868 B
Docker

# Start from NodeJS image
FROM node:22-alpine
# Workdir definition
WORKDIR /usr/src/back
# Environment declaration variables
ARG NODE_ENV="dev"
ARG DB_HOST="postgres"
ARG DB_NAME="briques"
ARG DB_USER="briques_db"
ARG DB_PASSWORD="briques_password"
ARG DB_PORT=5432
COPY package.json ./
RUN npm install
RUN npm install -g pm2
# Copy sources
COPY . .
# Setting up environment
RUN echo "NODE_ENV=${NODE_ENV}" > .env \
&& echo "DB_HOST=${DB_HOST}" >> .env \
&& echo "DB_NAME=${DB_NAME}" >> .env \
&& echo "DB_USER=${DB_USER}" >> .env \
&& echo "DB_PORT=${DB_PORT}" >> .env \
&& echo "DB_PASSWORD=${DB_PASSWORD}" >> .env
# Compilation des fichiers TypeScript
RUN npm run build
# Review permissions
RUN chown -R node:node ./
RUN chmod -R u=rwx,g=,o= ./
# Expose port
EXPOSE 3000
# Start app
CMD ["pm2", "start", "dist/app.js", "--no-daemon"]