# Use a lightweight server FROM nginx:alpine # Install bash for the script execution RUN apk add --no-cache bash # Set working directory WORKDIR /usr/share/nginx/html # Copy all the application files COPY . . # Create a simple script to generate config.env.js RUN echo '#!/bin/sh' > /usr/share/nginx/html/docker-generate-config.sh && \ echo 'echo "// config.env.js - Generated from .env" > config.env.js' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo 'echo "// This file contains environment variables for the PWA" >> config.env.js' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo 'echo "// Generated on $(date)" >> config.env.js' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo 'echo "" >> config.env.js' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo 'echo "window.ENV_CONFIG = {" >> config.env.js' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo 'grep -v "^#" .env | grep "=" | while read line; do' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo ' key=$(echo $line | cut -d= -f1)' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo ' value=$(echo $line | cut -d= -f2-)' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo ' echo " $key: \"$value\"," >> config.env.js' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo 'done' >> /usr/share/nginx/html/docker-generate-config.sh && \ echo 'echo "};" >> config.env.js' >> /usr/share/nginx/html/docker-generate-config.sh && \ chmod +x /usr/share/nginx/html/docker-generate-config.sh # Generate config.env.js from .env RUN /usr/share/nginx/html/docker-generate-config.sh # Remove the .env file and the generation script for security RUN rm .env docker-generate-config.sh # Expose port 80 EXPOSE 80