uchill/front_minimal/Dockerfile

37 lines
1.2 KiB
Docker

# Development stage для front_minimal (отдельный от front_material)
FROM node:20-alpine AS development
WORKDIR /app
# front_minimal использует NEXT_PUBLIC_SERVER_URL, NEXT_PUBLIC_ASSET_URL
ARG NEXT_PUBLIC_SERVER_URL
ARG NEXT_PUBLIC_ASSET_URL
ARG NEXT_PUBLIC_BASE_PATH
ARG BUILD_STATIC_EXPORT=false
ENV NEXT_PUBLIC_SERVER_URL=${NEXT_PUBLIC_SERVER_URL}
ENV NEXT_PUBLIC_ASSET_URL=${NEXT_PUBLIC_ASSET_URL}
ENV NEXT_PUBLIC_BASE_PATH=${NEXT_PUBLIC_BASE_PATH:-}
ENV BUILD_STATIC_EXPORT=${BUILD_STATIC_EXPORT}
ENV NODE_ENV=development
ENV HOSTNAME=0.0.0.0
ENV WATCHPACK_POLLING=true
ENV CHOKIDAR_USEPOLLING=true
# front_minimal: есть и package-lock.json и yarn.lock, используем npm
COPY package*.json ./
RUN npm install
COPY . .
# Entrypoint: при volume-монтировании проверяем node_modules
RUN echo '#!/bin/sh' > /entrypoint.sh && \
echo 'set -e' >> /entrypoint.sh && \
echo 'if [ ! -d node_modules/next ] 2>/dev/null || [ ! -f node_modules/.package-lock.json ] 2>/dev/null; then npm install; fi' >> /entrypoint.sh && \
echo 'exec npx next dev -p 3000 --hostname 0.0.0.0' >> /entrypoint.sh && \
chmod +x /entrypoint.sh
EXPOSE 3000
ENTRYPOINT ["/entrypoint.sh"]