33 lines
1.5 KiB
YAML
33 lines
1.5 KiB
YAML
services:
|
|
pipeline:
|
|
build:
|
|
context: .
|
|
dockerfile_inline: |
|
|
FROM python:3.11-slim
|
|
WORKDIR /app
|
|
COPY . .
|
|
RUN pip install --no-cache-dir .
|
|
# robot.json wird per "COPY . ." mit ins Image gebacken und liegt damit
|
|
# IMMER unter /app/config/robot.json. Kein Bind-Mount noetig -> laeuft
|
|
# out-of-the-box auch als Portainer-Stack (dort gibt es kein lokales
|
|
# ./config, ein fehlender Mount-Pfad wuerde sonst ein leeres Verzeichnis
|
|
# erzeugen und jeden /v1/estimate mit 500 (IsADirectoryError) abbrechen).
|
|
ENV ROBOT_JSON=/app/config/robot.json
|
|
EXPOSE 8446
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \
|
|
CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8446/v1/health')"
|
|
CMD ["python", "-m", "scripts.api", \
|
|
"--robot", "/app/config/robot.json", \
|
|
"--host", "0.0.0.0", "--port", "8446"]
|
|
image: approbot/pose-pipeline:1.0.0
|
|
container_name: appRobotBodyTracker
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8446:8446"
|
|
# Optional: eigene robot.json ohne Rebuild einspielen, indem die eingebackene
|
|
# Kopie ueberlagert wird. NUR aktivieren, wenn die Host-Datei WIRKLICH existiert
|
|
# (sonst legt Docker dort ein leeres Verzeichnis an -> 500). Im Portainer-Stack
|
|
# in der Regel nicht noetig, da die robot.json bereits im Image enthalten ist.
|
|
# volumes:
|
|
# - /home/chk/Documents/appRobotBodyTracker/config/robot.json:/app/config/robot.json:ro
|