jemc / jylis

A distributed in-memory database for Conflict-free Replicated Data Types (CRDTs). :seedling: :left_right_arrow:
https://jemc.github.io/jylis
Mozilla Public License 2.0
76 stars 6 forks source link

docs: fix add minimal docker example #3

Closed srenatus closed 6 years ago

srenatus commented 6 years ago

Just a small addition to blaze a tiny trail for the next person 😉

jemc commented 6 years ago

Thanks for helping out!

However, the intention here for this page was to run the jemc/jylis docker image, which is built from the master branch by dockerhub. That's a little easier than using busybox and mounting the binary into it as you've done here.

Would you mind revising the example to use the jemc/jylis image?

srenatus commented 6 years ago

Sure. :) won't be on a computer before Wednesday, though.

On Sat, 28 Apr 2018, 20:58 Joe Eli McIlvain, notifications@github.com wrote:

Thanks for helping out!

However, the intention here for this page was to run the jemc/jylis docker image, which is built from the master by dockerhub. That's a little easier than using busybox and mounting the binary into it as you've done here.

Would you mind revising the example to use the jemc/jylis image?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/jemc/jylis/pull/3#issuecomment-385198426, or mute the thread https://github.com/notifications/unsubscribe-auth/AA1I7quMFt88pL44PZoBljI3dDjD8NBeks5ttLvsgaJpZM4TrVq5 .

srenatus commented 6 years ago

Trying to use jemc/jylis, I've stumbled upon this: it does't run.

$ docker run -p 6379:6379 jemc/jylis
                   ,           ,                 ,           ,
                .a8P8a.     .a8P8a.           .a8P8a.     .a8P8a.
                |8   8|     |8   `*8a.     .a8*'   8|     |8   8|
                '*8d8*;     '*8a.   `*8a.a8*'   .a8*'     '*8d8*'
       ,           ;a8P8a.     `*8a.   `*'   .a8*'           ;           .
    .a8P8a.        |8   `*8a.     `*8a.   .a8*'     ,     .a8P8a.     .a8P8a.
    |8   `*8a.     '*8a.   `*8a.     |8   8|     .a8P8a.  |8   8|  .a8*'   8|
    '*8a.   `*8a.     `*8a.   8|     |8   8|     |8   8|  |8   8|  |8   .a8*'
       '*8a.   `*8a.     |8   8|     |8   8|     |8   8|  |8   8|  |8   8|
          ;8>     8|     |8   8|     |8   8|     |8   8|  '*8d8*'  |8   8|
       .a8*'   .a8*'     |8   8|     |8   8|     |8   8|     `     |8   8|
    .a8*'   .a8*'     .a8*'   8|     |8   8|     |8   `*8a.     .a8*'   8|
    |8   .a8*'     .a8*'   .a8*'     |8   8|     |8      8|     |8   .a8*'
    '*8d8*'        |8   .a8*'     .a8*'   8|     |8   .a8*'     '*8d8*'
       `           '*8d8*'     .a8*'   .a8*'     '*8d8*'           `
                      `        |8   .a8*'           `
                               '*8d8*'
                                  `
advertises cluster address: 127.0.0.1:9999:liminal-quest-a6eb0c378f88
serves commands on port:    6379
(I) server listener ready
(I) cluster listener ready
$ echo $?
139
$

I'm not sure what's going on here. Tried rebuilding the container with FROM busybox (instead of scratch) to start the binary myself:

$ docker run -it --entrypoint sh my-jylis
/ # ./jylis --help
usage: jylis [<options>] <>
Options:
   -h, --help=false
   -s, --seed-addrs=             A space-separated list of the host:port:name for other known nodes.
   -a, --addr=127.0.0.1:9999:    The host:port:name to be advertised to other clustering nodes.
   -L, --log-level=info          Maximum level of detail for logging (error, warn, info, or debug).
   -T, --system-log-trim=200     The number of entries to retain in the distributed `SYSTEM GETLOG`.
   -T, --heartbeat-time=10       The number of seconds between heartbeats in the clustering protocol.
   -p, --port=6379               The port for accepting commands over RESP-protocol connections.
Args:
   <>
/ # ./jylis
                   ,           ,                 ,           ,
                .a8P8a.     .a8P8a.           .a8P8a.     .a8P8a.
                |8   8|     |8   `*8a.     .a8*'   8|     |8   8|
                '*8d8*;     '*8a.   `*8a.a8*'   .a8*'     '*8d8*'
       ,           ;a8P8a.     `*8a.   `*'   .a8*'           ;           .
    .a8P8a.        |8   `*8a.     `*8a.   .a8*'     ,     .a8P8a.     .a8P8a.
    |8   `*8a.     '*8a.   `*8a.     |8   8|     .a8P8a.  |8   8|  .a8*'   8|
    '*8a.   `*8a.     `*8a.   8|     |8   8|     |8   8|  |8   8|  |8   .a8*'
       '*8a.   `*8a.     |8   8|     |8   8|     |8   8|  |8   8|  |8   8|
          ;8>     8|     |8   8|     |8   8|     |8   8|  '*8d8*'  |8   8|
       .a8*'   .a8*'     |8   8|     |8   8|     |8   8|     `     |8   8|
    .a8*'   .a8*'     .a8*'   8|     |8   8|     |8   `*8a.     .a8*'   8|
    |8   .a8*'     .a8*'   .a8*'     |8   8|     |8      8|     |8   .a8*'
    '*8d8*'        |8   .a8*'     .a8*'   8|     |8   .a8*'     '*8d8*'
       `           '*8d8*'     .a8*'   .a8*'     '*8d8*'           `
                      `        |8   .a8*'           `
                               '*8d8*'
                                  `
advertises cluster address: 127.0.0.1:9999:tenebrous-flower-2da3f4d9fd34
serves commands on port:    6379
(I) server listener ready
Aborted
/ # echo $?
134
/ #

Any ideas? :)

srenatus commented 6 years ago

ℹī¸ This is probably some local issue; I just realised it's happening with the other method (volume-mounting the executable) for me, now, too. Must have upgraded docker or screwed up something else in my environment.

srenatus commented 6 years ago

Got a good idea how it used to look when it was still working for me -- so I've updated the PR with that.

jemc commented 6 years ago

I don't think it's just you - there may be a deeper problem with this: I just tried it on one of my other machines, and I get a SIGILL when running the container, or when copying the binary out of the container and running it on my host.

I'm going to hold off on merging this until I can figure out what's going on and fix it. This may have something to do with pic.

jemc commented 6 years ago

I've actually just merged another PR for this content (#4), because the image was working for this person, and they've included a few more examples of use (with docker-compose, etc).

I've opened #6 to investigate the portability issues we were discussing here.

Sorry for the inconvenience, and thanks for your help.

srenatus commented 6 years ago

@jemc sure, no worries 👍