Spaces:
Paused
Paused
| 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"] | |