Spaces:
Sleeping
Sleeping
FROM python:3.12 | |
COPY --from=ghcr.io/astral-sh/uv:0.5.1 /uv /bin/uv | |
RUN set -ex \ | |
&& chmod 755 /bin/uv \ | |
&& useradd --create-home --shell /bin/bash --uid 1000 user | |
# Set environment variables | |
ENV VIRTUAL_ENV=/opt/venv \ | |
PATH="/opt/venv/bin:/home/user/.local/bin:$PATH" \ | |
HOME=/home/user | |
# Install dependencies | |
COPY --chown=user:user ./requirements.txt requirements.txt | |
RUN uv venv $VIRTUAL_ENV \ | |
&& uv pip install --no-cache-dir -r requirements.txt \ | |
&& chown -R user:user $VIRTUAL_ENV | |
# Create directories and set permissions | |
RUN mkdir -p $HOME/.cache $HOME/.config /data \ | |
&& chown -R user:user $HOME /data \ | |
&& chmod -R 755 $HOME /data \ | |
&& chown -R user:user /opt/venv | |
RUN --mount=type=secret,id=MARIMO_PASSWORD \ | |
cat /run/secrets/MARIMO_PASSWORD > $HOME/.marimo_password \ | |
&& chmod 600 $HOME/.marimo_password \ | |
&& chown user:user $HOME/.marimo_password | |
# Set working directory | |
WORKDIR /data | |
# Copy examples | |
COPY --chown=user:user ./examples ./examples | |
# Set user | |
USER user | |
# Use heredoc with explicit delimiter | |
RUN <<'ENDCONFIG' cat > $HOME/.marimo.toml | |
[package_management] | |
manager = "uv" | |
[display] | |
cell_output = "below" | |
dataframes = "rich" | |
theme = "light" | |
ENDCONFIG | |
# Uncomment to enable password protection | |
# CMD marimo edit /data --host=0.0.0.0 --port=7860 --token-password=$(cat $HOME/.marimo_password) | |
CMD marimo edit /data --host=0.0.0.0 --port=7860 --no-token | |