You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.6 KiB
51 lines
1.6 KiB
# Base image
|
|
FROM node:18.20.5
|
|
|
|
# Set working directory
|
|
WORKDIR /usr/src/app
|
|
|
|
# Copy package.json and package-lock.json (if exists)
|
|
COPY package.json ./
|
|
RUN apt-get update && apt-get install -y build-essential
|
|
RUN rm -rf .next
|
|
|
|
# Install dependencies
|
|
RUN npm install --legacy-peer-deps
|
|
# RUN npm ci
|
|
|
|
# Copy the rest of the application code
|
|
COPY . .
|
|
|
|
# Set environment variables
|
|
ENV NEXT_PUBLIC_DEFAULT_LANGUAGE=en
|
|
ENV NEXT_PUBLIC_AVAILABLE_LANGUAGES=en
|
|
ENV NEXT_PUBLIC_ENABLE_MULTI_LANG=true
|
|
ENV NODE_ENV=production
|
|
ENV NEXT_PUBLIC_REST_API_ENDPOINT=https://mesbahi.nwhco.ir/api
|
|
ENV NEXT_PUBLIC_SITE_URL=https://mesbahi.nwhco.ir
|
|
ENV USE_MOCK_DATA=false
|
|
ENV USE_MOCK_DATA=true
|
|
|
|
# Verify environment variables (برای دیباگ)
|
|
# RUN echo "NEXT_PUBLIC_DEFAULT_LANGUAGE=${NEXT_PUBLIC_DEFAULT_LANGUAGE}" && \
|
|
# echo "NEXT_PUBLIC_AVAILABLE_LANGUAGES=${NEXT_PUBLIC_AVAILABLE_LANGUAGES}" && \
|
|
# echo "NEXT_PUBLIC_ENABLE_MULTI_LANG=${NEXT_PUBLIC_ENABLE_MULTI_LANG}"
|
|
|
|
# Modify tsconfig.json to ignore type errors (optional)
|
|
# RUN sed -i 's/"noEmitOnError": true/"noEmitOnError": false/' tsconfig.json && \
|
|
# sed -i 's/"strict": true/"strict": false/' tsconfig.json && \
|
|
# sed -i 's/"skipLibCheck": false/"skipLibCheck": true/' tsconfig.json
|
|
|
|
# # Modify next.config.js to ignore linting and type errors
|
|
# RUN sed -i '/eslint:/a \ \ ignoreDuringBuilds: true,' next.config.js && \
|
|
# sed -i '/typescript:/a \ \ ignoreBuildErrors: true,' next.config.js
|
|
|
|
|
|
# Build the Next.js application with verbose logging
|
|
RUN npm run build --verbose
|
|
|
|
# Expose the port the app runs on
|
|
EXPOSE 3000
|
|
|
|
# Start the application
|
|
CMD ["npm", "start"]
|