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 <apa...@leangen.net> 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 <btell...@apache.org> 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: server-user-unsubscr...@james.apache.org
>>> For additional commands, e-mail: server-user-h...@james.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
>> For additional commands, e-mail: server-user-h...@james.apache.org
>>
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org
For additional commands, e-mail: server-user-h...@james.apache.org

Reply via email to