Portal-dias-rota/Dockerfile

57 lines
1.4 KiB
Docker
Raw Normal View History

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"]