# syntax=docker/dockerfile:1.4 # BUILD STAGE FROM node:lts-iron AS builder # Establecer el directorio de trabajo WORKDIR /api # Copiar los archivos de dependencias COPY package.json . COPY tsconfig*.json . RUN yarn install RUN mkdir -p ./shared RUN mkdir -p ./server COPY shared ./shared COPY server ./server #CMD pwd && ls -la RUN cd ./shared && yarn install RUN cd ./server && yarn install # Ejecutar el build # Si hay un error, mostrarlo en detalle. RUN cd ./server && yarn run build || { echo 'Error during build'; exit 1; } # Copiar plantillas RUN mkdir -p /api/dist/server/src/contexts/sales/infrastructure/express/controllers/quotes/reportQuote/reporter/templates/quote/ COPY server/src/contexts/sales/infrastructure/express/controllers/quotes/reportQuote/reporter/templates/quote/* /api/dist/server/src/contexts/sales/infrastructure/express/controllers/quotes/reportQuote/reporter/templates/quote # FINAL STAGE (Producción) FROM node:lts-iron AS prod WORKDIR /api # Copiar los archivos del build desde la fase anterior COPY --from=builder /api/dist . COPY --from=builder /api/server/package.json . COPY --from=builder /api/server/tsconfig.production.json ./tsconfig.json # Instalar sólo las dependencias de producción en el servidor RUN yarn install --production # Exponer el puerto que la API usa EXPOSE 3001 #CMD pwd && ls -la #CMD cat package.json # Comando para correr la aplicación CMD node -r ts-node/register/transpile-only -r tsconfig-paths/register ./server/src/index.js