FROM node:20-alpine AS builder WORKDIR /app RUN apk add --no-cache libaio libnsl libc6-compat curl unzip RUN mkdir -p /opt/oracle && \ cd /opt/oracle && \ curl -o instantclient-basiclite.zip https://download.oracle.com/otn_software/linux/instantclient/2340000/instantclient-basiclite-linux.x64-23.4.0.24.05.zip && \ unzip instantclient-basiclite.zip && \ rm -f instantclient-basiclite.zip && \ cd instantclient_23_4 && \ rm -f *jdbc* *occi* *mysql* *jar uidrvci genezi adrci && \ echo /opt/oracle/instantclient_23_4 > /etc/ld.so.conf.d/oracle-instantclient.conf && \ ldconfig ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_23_4:$LD_LIBRARY_PATH COPY package*.json ./ RUN npm ci COPY . . RUN npm run build FROM node:20-alpine AS runner WORKDIR /app RUN apk add --no-cache libaio libnsl libc6-compat COPY --from=builder /opt/oracle/instantclient_23_4 /opt/oracle/instantclient_23_4 RUN echo /opt/oracle/instantclient_23_4 > /etc/ld.so.conf.d/oracle-instantclient.conf && \ ldconfig ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_23_4:$LD_LIBRARY_PATH RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs COPY --from=builder /app/public ./public COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static RUN chown -R nextjs:nodejs /app USER nextjs EXPOSE 3003 ENV NODE_ENV=production ENV PORT=3003 CMD ["node", "server.js"]