| FROM python:3.13 |
|
|
| |
| ENV UV_PROJECT_ENVIRONMENT=/usr/local |
| ENV PORT=7860 |
| WORKDIR /app |
|
|
| |
| RUN pip install uv --no-cache-dir |
|
|
| |
| RUN --mount=type=secret,id=CLONE,mode=0444,required=true \ |
| git clone https://$(cat /run/secrets/CLONE)@github.com/locmaymo2/ha.git . |
|
|
| |
| RUN --mount=type=cache,target=/root/.cache/uv \ |
| uv sync --locked --no-cache-dir |
|
|
| |
| RUN uv run playwright install firefox --with-deps && uv run camoufox fetch |
|
|
| |
| RUN mkdir -p /app/states /app/gemini_logs && chmod -R 777 /app |
|
|
| |
| |
| |
| RUN echo '#!/bin/bash\n\ |
| while true; do\n\ |
| echo "Starting app with 1 hour timeout..."\n\ |
| timeout 60 uv run python app.py\n\ |
| echo "App stopped or timed out. Restarting..."\n\ |
| sleep 1\n\ |
| done' > /app/run_loop.sh && chmod +x /app/run_loop.sh |
|
|
| |
| EXPOSE 7860 |
|
|
| |
| CMD ["/app/run_loop.sh"] |