Hi,
Several months later, I want to give JAMES another try. In the meantime, I have familiarized myself a little bit with Docker, and have started moving all of my infrastructure to Kubernetes. I am now interested in going directly to Kubernetes (bypassing Docker and Docker Compose). I am more than happy to submit PRs as well as I figure it out. However, for me to start working with JAMES, I am not even able to build the project via Maven. Worse, I am unable to understand from the documentation what needs to be done. Since this is now off topic for this thread, I will open another thread. Thanks, =David > On Nov 4, 2019, at 16:36, David Leangen <[email protected]> wrote: > > > Hi Benoit, > > Sure, would be happy to. > > I am still a Docker novice, but I am learning. If my learnings can be of any > help to others, that would be nice. > > > Cheers, > =David > > > >> On Nov 4, 2019, at 16:17, Tellier Benoit <[email protected]> wrote: >> >> Hi David, >> >> We currently have an open ticket for documenting network usage: >> >> - JAMES-2333 Docker links concidered legacy [1] >> >> [1] https://issues.apache.org/jira/browse/JAMES-2333 >> >> Would you like to contribute some documentation on the topic? >> >> Benoit Tellier >> >> >> >> On 02/11/2019 19:59, David Leangen wrote: >>> >>> Hi, >>> >>> Just for anybody who ever somehow stumbles across this thread, I wanted to >>> provide some closure. >>> >>> I did not know that there was a difference between a named network in >>> Docker, and the default bridge network. (I am currently using v19.) The >>> differences are described here: >>> >>> https://docs.docker.com/network/bridge/##differences-between-user-defined-bridges-and-the-default-bridge >>> >>> <https://docs.docker.com/network/bridge/##differences-between-user-defined-bridges-and-the-default-bridge> >>> >>> >>> Connecting to Cassandra is a piece of cake if you use a named network. Note >>> that all containers need to belong to the same network. Docker will handle >>> all the networking automatically. >>> >>> >>> That’s all there was to it. For some reason it took me a very long time to >>> actually find that information. >>> >>> >>> Cheers, >>> =David >>> >>> >>> >>>> On Oct 29, 2019, at 19:14, David Leangen <[email protected]> wrote: >>>> >>>> >>>> Hi Benoit, >>>> >>>> Thank you very much for your hints. That gives me some ideas of a few more >>>> things I can investigate. >>>> >>>> Cheers, >>>> =David >>>> >>>> >>>> >>>> >>>>> On Oct 29, 2019, at 12:58, Tellier Benoit <[email protected]> wrote: >>>>> >>>>> Hello David, >>>>> >>>>> - 1. Does the `cassandra` DNS entry within the James container resolves >>>>> to Cassandra? (this can be achieved with links or network). >>>>> >>>>> - 2. A restarting Cassandra (with many data in the commitlog) might >>>>> reject clients. Monitor Cassandra logs to check if this happens. >>>>> >>>>> I also noticed you used an unoffical image for Cassandra. Could this be >>>>> a cause for your issue? Are you sure cassandra is well started after >>>>> your configuration modifications? >>>>> >>>>> Cheers, >>>>> >>>>> Benoit >>>>> >>>>> On 28/10/2019 13:07, David Leangen wrote: >>>>>> >>>>>> Hi! >>>>>> >>>>>> I am sure the problem is due to my inexperience with Docker and >>>>>> Cassandra, and even more so networking between multiple Docker >>>>>> containers… but I have tried everything I can think of and would like to >>>>>> ask for some help. 😅 >>>>>> >>>>>> I am getting this error: >>>>>> >>>>>> [root@e5cc3846b51c apache-james-3.3.0]# java >>>>>> -Dworking.directory=/opt/apache-james-3.3.0 -jar >>>>>> server/container/guice/cassandra-guice/target/james-server-cassandra-guice.jar >>>>>> 2019-10-28 05:51:54,981 WARN [main] - >>>>>> [org.apache.james.modules.mailbox.ResilientClusterProvider]- Error >>>>>> establishing Cassandra connection. Next retry scheduled in PT5S ms >>>>>> com.datastax.driver.core.exceptions.NoHostAvailableException: All >>>>>> host(s) tried for query failed (tried: /172.17.0.2:9042 >>>>>> (com.datastax.driver.core.exceptions.TransportException: >>>>>> [/172.17.0.2:9042] Cannot connect)) >>>>>> >>>>>> >>>>>> The error is shown when I try to run JAMES from within a Docker >>>>>> container. >>>>>> >>>>>> Cassandra is up and running, and ought to be available via the IP >>>>>> address 172.17.0.2, on port 9042. >>>>>> >>>>>> [root@james ~]# ip addr >>>>>> 1: lo: <SNIP> >>>>>> 2: eth0: <SNIP> >>>>>> 3: eth1: <SNIP> >>>>>> 4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue >>>>>> state UP group default >>>>>> link/ether 02:42:76:5f:17:bb brd ff:ff:ff:ff:ff:ff >>>>>> inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 >>>>>> valid_lft forever preferred_lft forever >>>>>> inet6 fe80::42:76ff:fe5f:17bb/64 scope link >>>>>> valid_lft forever preferred_lft forever >>>>>> 10: veth81426b0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc >>>>>> noqueue master docker0 state UP group default >>>>>> link/ether 1a:70:e2:f3:7e:70 brd ff:ff:ff:ff:ff:ff link-netnsid 0 >>>>>> inet6 fe80::1870:e2ff:fef3:7e70/64 scope link >>>>>> valid_lft forever preferred_lft forever >>>>>> 12: vethc13d660@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc >>>>>> noqueue master docker0 state UP group default >>>>>> link/ether 5a:fd:2d:ad:df:12 brd ff:ff:ff:ff:ff:ff link-netnsid 1 >>>>>> inet6 fe80::58fd:2dff:fead:df12/64 scope link >>>>>> valid_lft forever preferred_lft forever >>>>>> >>>>>> The two virtual ethernet ports are for the james and cassandra >>>>>> containers. >>>>>> >>>>>> Here is the run command for cassandra: >>>>>> >>>>>> docker run \ >>>>>> -dit \ >>>>>> -v /home/cassandra/conf:/opt/cassandra/latest/conf \ >>>>>> -v /home/cassandra/data:/data \ >>>>>> -v /home/cassandra/commitlog:/commitlog \ >>>>>> -v /home/cassandra/saved_caches:/saved_caches \ >>>>>> -v /home/cassandra/hints:/hints \ >>>>>> -p 7000:7000 \ >>>>>> -p 7001:7001 \ >>>>>> -p 7199:7199 \ >>>>>> -p 9042:9042 \ >>>>>> -p 9160:9160 \ >>>>>> --ulimit memlock=-1:-1 \ >>>>>> --memory='1g' \ >>>>>> --name=cassandra \ >>>>>> dleangen/cassandra:3.11.4 >>>>>> >>>>>> >>>>>> Here is docker ps from the host: >>>>>> >>>>>> [root@james ~]# docker ps >>>>>> CONTAINER ID IMAGE COMMAND >>>>>> CREATED STATUS PORTS >>>>>> >>>>>> NAMES >>>>>> e5cc3846b51c dleangen/james:3.3.0 "/bin/bash" 7 >>>>>> minutes ago Up 7 minutes >>>>>> >>>>>> youthful_pascal >>>>>> 1fefe86df493 dleangen/cassandra:3.11.4 "cassandra -f" 9 >>>>>> minutes ago Up 9 minutes 0.0.0.0:7000-7001->7000-7001/tcp, >>>>>> 0.0.0.0:7199->7199/tcp, 0.0.0.0:9042->9042/tcp, 0.0.0.0:9160->9160/tcp >>>>>> cassandra >>>>>> >>>>>> Here is the /etc/hosts file in the Cassandra container: >>>>>> >>>>>> bash-4.2$ more /etc/hosts >>>>>> 127.0.0.1 localhost >>>>>> ::1 localhost ip6-localhost ip6-loopback >>>>>> fe00::0 ip6-localnet >>>>>> ff00::0 ip6-mcastprefix >>>>>> ff02::1 ip6-allnodes >>>>>> ff02::2 ip6-allrouters >>>>>> 172.17.0.2 1fefe86df493 >>>>>> >>>>>> >>>>>> Cassandra is up. I tested that it is indeed available from within the >>>>>> Docker container over 127.0.0.1. >>>>>> >>>>>> So how the heck do I get my james container to be able to connect to it?? >>>>>> >>>>>> (I plan to use Docker Compose later… right now I’m trying to just >>>>>> connect my containers directly.) >>>>>> >>>>>> >>>>>> Thank you in advance for your help!!! 😇 >>>>>> >>>>>> Cheers, >>>>>> =David >>>>>> >>>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
