This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-06-12
Channels
- # beginners (36)
- # boot (11)
- # cider (10)
- # cljs-dev (10)
- # cljsrn (3)
- # clojure (103)
- # clojure-greece (1)
- # clojure-italy (16)
- # clojure-nl (3)
- # clojure-spec (59)
- # clojure-uk (129)
- # clojurescript (125)
- # data-science (29)
- # datomic (30)
- # emacs (12)
- # events (5)
- # fulcro (61)
- # graphql (5)
- # keechma (3)
- # leiningen (9)
- # luminus (7)
- # onyx (26)
- # re-frame (3)
- # reagent (56)
- # reitit (25)
- # ring-swagger (16)
- # shadow-cljs (44)
- # spacemacs (4)
- # specter (2)
- # tools-deps (7)
- # vim (8)
on that note, do people run the aeron driver in a separate docker container, or on a different process within the same container ?
https://github.com/onyx-platform/onyx-template/tree/0.13.x/src/leiningen/new/onyx_app runs it as a separate process within the same container, but i am not sure whether that's the best practice.. ?
we run it in the same container, i’ve tried running it in a separate container but ran into issues
@lmergen separate process in the same container, using https://github.com/just-containers/s6-overlay
@mccraigmccraig first time i'm seeing s6, looks great!
from the comments in my onyx peer Dockerfile
it was originally from @gardnervickers ... i'm guessing there is an onyx example Dockerfile
somewhere ?
looks like the onyx-tempate also uses s6, but not the docker image https://github.com/onyx-platform/onyx-template/blob/0.13.x/src/leiningen/new/onyx_app/scripts/finish_media_driver.sh
It’s recommended that you run a single process per docker container. For the Peer/MediaDriver case, you want to setup communication over shared memory (`/dev/shm`).
S6 is just a process monitor from what I recall to make sure child processes are correctly reaped.
Back when those scripts were created it wasn’t easy/possible to spawn two containers with shared memory between them but now the examples would be much better served by using /dev/shm
on the host and mounting it in two separate containers.
so that would probably mean creating a tmpfs volume in docker and sharing it between multiple containers ?
Yea that would be even better
Exactly
It also more directly maps to docker orchestrator abstractions like Kubernetes "Memory"
volumes
If any I doubt it’s enough to notice
i just read on the docs that you cannot share a tmpfs volume between docker containers
Alright yea then just mounting the hosts /dev/shm
should be fine