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"] | |