Spaces:
Runtime error
Runtime error
# Production stage for building the app | |
FROM node:current-bullseye-slim as prod | |
ARG VITE_AUTH0_DOMAIN | |
ARG VITE_AUTH0_CLIENT_ID | |
ARG VITE_JWT_AUDIENCE | |
ARG VITE_JWT_ISSUER | |
ENV VITE_AUTH0_DOMAIN=$VITE_AUTH0_DOMAIN \ | |
VITE_AUTH0_CLIENT_ID=$VITE_AUTH0_CLIENT_ID \ | |
VITE_JWT_AUDIENCE=$VITE_JWT_AUDIENCE \ | |
VITE_JWT_ISSUER=$VITE_JWT_ISSUER | |
WORKDIR /app | |
COPY package.json package-lock.json ./ | |
RUN npm install | |
# Set environment variables for production | |
RUN echo "VITE_AUTH0_DOMAIN=$VITE_AUTH0_DOMAIN" > .env.production.local && \ | |
echo "VITE_AUTH0_CLIENT_ID=$VITE_AUTH0_CLIENT_ID" >> .env.production.local && \ | |
echo "VITE_JWT_AUDIENCE=$VITE_JWT_AUDIENCE" >> .env.production.local && \ | |
echo "VITE_JWT_ISSUER=$VITE_JWT_ISSUER" >> .env.production.local | |
COPY . . | |
RUN npm run build | |
# Nginx stage for serving the content | |
FROM nginx:stable-alpine as nginx-server | |
WORKDIR /usr/share/nginx/html | |
# Remove default nginx static assets | |
RUN rm -rf ./* | |
# Create cache directories for nginx and adjust permissions | |
RUN mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/proxy_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/uwsgi_temp /var/cache/nginx/scgi_temp && \ | |
chmod -R 755 /var/cache/nginx/ | |
# Copy static assets from builder stage | |
COPY --from=prod /app/dist . | |
# Copy nginx configuration | |
COPY nginx.conf /etc/nginx/nginx.conf | |
# Ensure we use a modified default.conf that suits our needs | |
COPY nginx.conf /etc/nginx/conf.d/default.conf | |
# Expose the port nginx is reachable on | |
EXPOSE 7860 | |
# Use the "exec" form of CMD so Nginx shuts down gracefully on SIGTERM (i.e., `docker stop`) | |
CMD ["nginx", "-g", "daemon off;"] | |