45 lines
918 B
Docker
45 lines
918 B
Docker
# Start from NodeJS image
|
|
FROM node:22-alpine
|
|
|
|
# Workdir definition
|
|
WORKDIR /usr/src/back
|
|
|
|
# Environment declaration variables
|
|
ENV NODE_ENV="dev"
|
|
ENV DB_HOST="briques_postgres"
|
|
ENV DB_NAME="briques_db"
|
|
ENV DB_USER="briques_llm"
|
|
ENV DB_PASSWORD="briques_password_2025"
|
|
ENV 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 ["npm", "run", "startonly"]
|
|
#CMD ["pm2", "start", "dist/app.js", "--no-daemon"]
|