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]

Reply via email to