change how entrypoint and cmds work, so flags can be set at container creation

This commit is contained in:
Markus Küffner
2021-10-20 23:18:43 +02:00
parent 5af245464a
commit 4d90f55cd2
4 changed files with 59 additions and 35 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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"]

View File

@@ -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"]