wave 1 wiring: Dockerfile API stage + compose API command + README quickstart
- Dockerfile: pip-install requirements.txt and copy crafting_table/ into /app, switch CMD from /bin/bash to uvicorn server (port 8810). pip lands in /usr/local/bin so the crafter user runs uvicorn without elevation. - compose.yml: replace smoke.sh entrypoint with the API server command; bind 192.168.0.5:8810:8810 (LAN-only); switch named volumes to real Lucy appdata paths so /data + /workspace + /caches survive recreate. env_file marked optional so a fresh checkout boots without copying .env.example. - README.md: tick steps 1-4 done, document API surface table, add curl-based quickstart (mint token → register project → kick off job → poll → stream log), and an architecture-notes section covering the recipe-immutability snapshot, process-group SIGTERM/SIGKILL escalation, WAL+single-writer trade-off, and the recipe-security stance. Smoke remains runnable on demand: docker compose run --rm crafting-table /usr/local/bin/smoke.sh
This commit is contained in:
parent
0ec3a04676
commit
2e16ec886d
3 changed files with 199 additions and 37 deletions
16
Dockerfile
16
Dockerfile
|
|
@ -254,10 +254,20 @@ ENV PATH=/home/crafter/.composer/vendor/bin:$PATH
|
|||
COPY --chown=crafter:crafter smoke.sh /usr/local/bin/smoke.sh
|
||||
USER root
|
||||
RUN chmod +x /usr/local/bin/smoke.sh
|
||||
USER crafter
|
||||
|
||||
# ============================================================
|
||||
# 21. Final ENV / WORKDIR / CMD
|
||||
# 21. Application — FastAPI + async runner (wave 1: steps 2+3+4)
|
||||
# ============================================================
|
||||
COPY pyproject.toml requirements.txt /app/
|
||||
RUN pip install --break-system-packages --no-cache-dir -r /app/requirements.txt
|
||||
COPY --chown=crafter:crafter crafting_table /app/crafting_table
|
||||
RUN chown -R crafter:crafter /app
|
||||
|
||||
# ============================================================
|
||||
# 22. Final ENV / WORKDIR / CMD
|
||||
# ============================================================
|
||||
USER crafter
|
||||
WORKDIR /workspace
|
||||
CMD ["/bin/bash"]
|
||||
ENV PYTHONPATH=/app \
|
||||
PYTHONUNBUFFERED=1
|
||||
CMD ["uvicorn", "crafting_table.server:app", "--host", "0.0.0.0", "--port", "8810"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue