FROM nikolaik/python-nodejs:python3.10-nodejs18 # Install necessary packages, including xvfb USER root RUN apt-get -y update && \ apt-get install -y nginx libglu1 xvfb libxcursor1 ca-certificates && \ apt-get clean && \ update-ca-certificates # Create necessary directories and set permissions for 'pn' RUN mkdir -p /var/cache/nginx \ /var/log/nginx \ /var/lib/nginx \ /var/run/nginx.pid \ /home/pn/app/build RUN chown -R pn:pn /var/cache/nginx \ /var/log/nginx \ /var/lib/nginx \ /var/run/nginx.pid \ /home/pn/app/build # Switch to non-root user 'pn' USER pn ENV HOME=/home/pn \ PATH=/home/pn/.local/bin:$PATH # Set the working directory to /home/pn/app WORKDIR /home/pn/app # Copy Python dependencies, Nginx configuration, and application code COPY --chown=pn requirements.txt requirements.txt RUN pip install --no-cache-dir -r requirements.txt COPY --chown=pn nginx.conf /etc/nginx/sites-available/default # Copy Unity game server build COPY --chown=pn build/ /home/pn/app/build/ # Copy the run script COPY --chown=pn run.sh /home/pn/app/ # Ensure the Unity server binary is executable RUN chmod +x /home/pn/app/build/linuxBuild.x86_64 # Run the application CMD ["bash", "run.sh"]