diff --git a/docker-compose.yaml b/docker-compose.yaml index 577a69b..01e1b1d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -9,9 +9,15 @@ x-klipper-svc: &klipper-svc target: run container_name: klipper restart: unless-stopped + command: + - "-I" + - "run/klipper.tty" + - "-a" + - "run/klipper.sock" + - "cfg/printer.cfg" ## Service Definitions -version: '3.4' +version: "3.4" services: ## Klippy Services @@ -49,6 +55,9 @@ services: target: run container_name: moonraker restart: unless-stopped + command: + - "-c" + - "cfg/moonraker.cfg" depends_on: - klipper volumes: @@ -61,15 +70,15 @@ services: profiles: - fluidd - mainsail - ## Clients won't connect, if moonraker runs under a subdirectory. + ## Clients won"t connect, if moonraker runs under a subdirectory. ## may be enabled in the future #labels: - # - 'traefik.enable=true' - # - 'traefik.http.services.moonraker.loadbalancer.server.port=7125' - # - 'traefik.http.routers.moonraker.rule=PathPrefix(`/moonraker`)' - # - 'traefik.http.routers.moonraker.entrypoints=web' - # - 'traefik.http.routers.moonraker.middlewares=moonraker-stripprefix' - # - 'traefik.http.middlewares.moonraker-stripprefix.stripprefix.prefixes=/moonraker' + # - "traefik.enable=true" + # - "traefik.http.services.moonraker.loadbalancer.server.port=7125" + # - "traefik.http.routers.moonraker.rule=PathPrefix(`/moonraker`)" + # - "traefik.http.routers.moonraker.entrypoints=web" + # - "traefik.http.routers.moonraker.middlewares=moonraker-stripprefix" + # - "traefik.http.middlewares.moonraker-stripprefix.stripprefix.prefixes=/moonraker" ## Frontends ## @@ -91,10 +100,10 @@ services: profiles: - octoprint labels: - - 'traefik.enable=true' - - 'traefik.http.services.octoprint.loadbalancer.server.port=5000' - - 'traefik.http.routers.octoprint.rule=PathPrefix(`/`)' - - 'traefik.http.routers.octoprint.entrypoints=web' + - "traefik.enable=true" + - "traefik.http.services.octoprint.loadbalancer.server.port=5000" + - "traefik.http.routers.octoprint.rule=PathPrefix(`/`)" + - "traefik.http.routers.octoprint.entrypoints=web" fluidd: image: cadriel/fluidd:latest @@ -108,10 +117,10 @@ services: - fluidd ## Fluidd needs to be the root path https://github.com/cadriel/fluidd/issues/347 labels: - - 'traefik.enable=true' - - 'traefik.http.services.fluidd.loadbalancer.server.port=80' - - 'traefik.http.routers.fluidd.rule=PathPrefix(`/`)' - - 'traefik.http.routers.fluidd.entrypoints=web' + - "traefik.enable=true" + - "traefik.http.services.fluidd.loadbalancer.server.port=80" + - "traefik.http.routers.fluidd.rule=PathPrefix(`/`)" + - "traefik.http.routers.fluidd.entrypoints=web" ## Accompanying Services/Infra ## @@ -125,31 +134,39 @@ services: target: run container_name: ustreamer restart: unless-stopped + command: + - "--host=0.0.0.0" + - "--port=8080" + - "--slowdown" + - "--device=/dev/video0" + - "--resolution=1280x960" + - "--format=MJPEG" + - "--desired-fps=30" depends_on: - traefik devices: - /dev/video0:/dev/video0 labels: - - 'traefik.enable=true' - - 'traefik.http.services.ustreamer.loadbalancer.server.port=8080' - - 'traefik.http.routers.ustreamer.rule=PathPrefix(`/stream`)' - - 'traefik.http.routers.ustreamer.entrypoints=web' + - "traefik.enable=true" + - "traefik.http.services.ustreamer.loadbalancer.server.port=8080" + - "traefik.http.routers.ustreamer.rule=PathPrefix(`/stream`)" + - "traefik.http.routers.ustreamer.entrypoints=web" ## Loadbalancer/Proxy traefik: - image: 'traefik:v2.2' - container_name: 'traefik' - hostname: 'traefik' + image: "traefik:v2.2" + container_name: "traefik" + hostname: "traefik" command: - - '--accesslog' - - '--providers.docker=true' - - '--providers.docker.exposedbydefault=false' - - '--entrypoints.web.address=:80' + - "--accesslog" + - "--providers.docker=true" + - "--providers.docker.exposedbydefault=false" + - "--entrypoints.web.address=:80" ports: - - '80:80' + - "80:80" restart: unless-stopped volumes: - - '/var/run/docker.sock:/var/run/docker.sock:ro' + - "/var/run/docker.sock:/var/run/docker.sock:ro" volumes: run: diff --git a/dockerfiles/klipper.Dockerfile b/dockerfiles/klipper.Dockerfile index c552e48..c3711f1 100644 --- a/dockerfiles/klipper.Dockerfile +++ b/dockerfiles/klipper.Dockerfile @@ -29,8 +29,9 @@ RUN groupadd klipper --gid 1000 \ && chown -R klipper:klipper /opt/* USER klipper -ENTRYPOINT ["/opt/venv/bin/python"] -CMD ["klipper/klippy/klippy.py", "-I", "run/klipper.tty", "-a", "run/klipper.sock", "cfg/printer.cfg"] +VOLUME ["/opt/run", "/opt/cfg", "/opt/gcode"] +ENTRYPOINT ["/opt/venv/bin/python", "klipper/klippy/klippy.py"] +CMD ["-I", "run/klipper.tty", "-a", "run/klipper.sock", "cfg/printer.cfg"] ## For building MCU Code FROM ubuntu:18.04 as mcu diff --git a/dockerfiles/moonraker.Dockerfile b/dockerfiles/moonraker.Dockerfile index 2e86ee3..d716b1f 100644 --- a/dockerfiles/moonraker.Dockerfile +++ b/dockerfiles/moonraker.Dockerfile @@ -38,8 +38,10 @@ RUN groupadd moonraker --gid 1000 \ && usermod moonraker --append --groups dialout \ && chown -R moonraker:moonraker /opt/* -## Start Klippy +## Start Moonraker USER moonraker -ENTRYPOINT ["/opt/venv/bin/python"] -CMD ["moonraker/moonraker/moonraker.py", "-c", "cfg/moonraker.cfg"] +EXPOSE 7125 +VOLUME ["/opt/run", "/opt/cfg", "/opt/gcode", "/opt/db"] +ENTRYPOINT ["/opt/venv/bin/python", "moonraker/moonraker/moonraker.py"] +CMD ["-c", "cfg/moonraker.cfg"] diff --git a/dockerfiles/ustreamer.Dockerfile b/dockerfiles/ustreamer.Dockerfile index 186923c..f608e19 100644 --- a/dockerfiles/ustreamer.Dockerfile +++ b/dockerfiles/ustreamer.Dockerfile @@ -46,5 +46,9 @@ RUN groupadd ustreamer --gid 1000 \ && usermod ustreamer --append --groups video \ && chown -R ustreamer:ustreamer /opt/* +## Start ustreamer USER ustreamer -ENTRYPOINT [ "/opt/ustreamer/ustreamer", "--host=0.0.0.0", "--port=8080", "--slowdown", "--device=/dev/video0", "--resolution=1280x960", "--format=MJPEG", "--desired-fps=30"] +EXPOSE 8080 +ENTRYPOINT [ "/opt/ustreamer/ustreamer"] +CMD ["--host=0.0.0.0", "--port=8080"] +