# 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; } # 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/shared ./shared COPY --from=builder /api/server ./server # Instalar sólo las dependencias de producción en el servidor RUN yarn install --production # Exponer el puerto que la API usa EXPOSE 3001 # Comando para correr la aplicación CMD ["yarn", "run", "server:start"]