Update Dockerfile
Browse files- Dockerfile +24 -2
Dockerfile
CHANGED
|
@@ -31,6 +31,7 @@ RUN rm -f /etc/apt/sources.list.d/*.list && \
|
|
| 31 |
ffmpeg \
|
| 32 |
xvfb \
|
| 33 |
icecast2 \
|
|
|
|
| 34 |
&& rm -rf /var/lib/apt/lists/*
|
| 35 |
|
| 36 |
RUN add-apt-repository ppa:flexiondotorg/nvtop && \
|
|
@@ -48,12 +49,27 @@ WORKDIR /app
|
|
| 48 |
RUN adduser --disabled-password --gecos '' --shell /bin/bash user \
|
| 49 |
&& chown -R user:user /app
|
| 50 |
RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user
|
|
|
|
| 51 |
USER user
|
| 52 |
|
| 53 |
# All users can use /home/user as their home directory
|
| 54 |
ENV HOME=/home/user
|
| 55 |
RUN mkdir $HOME/.cache $HOME/.config \
|
| 56 |
-
&& chmod -R 777 $HOME
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
|
| 58 |
# Set up the Conda environment
|
| 59 |
ENV CONDA_AUTO_UPDATE_CONDA=false \
|
|
@@ -84,6 +100,11 @@ RUN --mount=target=/root/on_startup.sh,source=on_startup.sh,readwrite \
|
|
| 84 |
|
| 85 |
RUN mkdir /data && chown user:user /data
|
| 86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
#######################################
|
| 88 |
# End root user section
|
| 89 |
#######################################
|
|
@@ -98,6 +119,7 @@ RUN --mount=target=requirements.txt,source=requirements.txt \
|
|
| 98 |
COPY --chown=user . $HOME/app
|
| 99 |
|
| 100 |
RUN chmod +x start_server.sh
|
|
|
|
| 101 |
|
| 102 |
COPY --chown=user login.html /home/user/miniconda/lib/python3.9/site-packages/jupyter_server/templates/login.html
|
| 103 |
|
|
@@ -109,4 +131,4 @@ ENV PYTHONUNBUFFERED=1 \
|
|
| 109 |
SYSTEM=spaces \
|
| 110 |
SHELL=/bin/bash
|
| 111 |
|
| 112 |
-
CMD ["./
|
|
|
|
| 31 |
ffmpeg \
|
| 32 |
xvfb \
|
| 33 |
icecast2 \
|
| 34 |
+
nginx \
|
| 35 |
&& rm -rf /var/lib/apt/lists/*
|
| 36 |
|
| 37 |
RUN add-apt-repository ppa:flexiondotorg/nvtop && \
|
|
|
|
| 49 |
RUN adduser --disabled-password --gecos '' --shell /bin/bash user \
|
| 50 |
&& chown -R user:user /app
|
| 51 |
RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user
|
| 52 |
+
|
| 53 |
USER user
|
| 54 |
|
| 55 |
# All users can use /home/user as their home directory
|
| 56 |
ENV HOME=/home/user
|
| 57 |
RUN mkdir $HOME/.cache $HOME/.config \
|
| 58 |
+
&& chmod -R 777 $HOME && chmod -R 777 /tmp
|
| 59 |
+
|
| 60 |
+
# Copy configuration files
|
| 61 |
+
COPY icecast.xml .
|
| 62 |
+
COPY nginx.conf .
|
| 63 |
+
COPY setup.sc .
|
| 64 |
+
COPY start.sh .
|
| 65 |
+
|
| 66 |
+
# Install FoxDot Quark (needs to be done as the user)
|
| 67 |
+
# We run Xvfb momentarily just in case sclang needs a display (usually doesn't for CLI, but safe)
|
| 68 |
+
# 'xvfb-run' is a handy wrapper if we had it, but we can just run sclang directly for CLI text.
|
| 69 |
+
RUN sclang setup.sc
|
| 70 |
+
|
| 71 |
+
# Standardize SC directories for the user (optional but good for debugging)
|
| 72 |
+
RUN mkdir -p /home/user/.local/share/SuperCollider/Extensions
|
| 73 |
|
| 74 |
# Set up the Conda environment
|
| 75 |
ENV CONDA_AUTO_UPDATE_CONDA=false \
|
|
|
|
| 100 |
|
| 101 |
RUN mkdir /data && chown user:user /data
|
| 102 |
|
| 103 |
+
# Fix permissions
|
| 104 |
+
RUN chown -R user:user /app && chmod +x start.sh && mkdir -p /app/logs && chown -R user:user /app/logs && \
|
| 105 |
+
mkdir -p /var/log/nginx && chown -R user:user /var/log/nginx && \
|
| 106 |
+
mkdir -p /var/lib/nginx && chown -R user:user /var/lib/nginx
|
| 107 |
+
|
| 108 |
#######################################
|
| 109 |
# End root user section
|
| 110 |
#######################################
|
|
|
|
| 119 |
COPY --chown=user . $HOME/app
|
| 120 |
|
| 121 |
RUN chmod +x start_server.sh
|
| 122 |
+
RUN chmod +x start.sh
|
| 123 |
|
| 124 |
COPY --chown=user login.html /home/user/miniconda/lib/python3.9/site-packages/jupyter_server/templates/login.html
|
| 125 |
|
|
|
|
| 131 |
SYSTEM=spaces \
|
| 132 |
SHELL=/bin/bash
|
| 133 |
|
| 134 |
+
CMD ["./start.sh"]
|