Isue when adding two docker images to rockon

Hi

i’m trying to create a rockon for steamcache and running the DNS and the cache as seperate containers works great (see the json files here and here), but when i try to combine it to one rockon file i get a:

“Invalid environment variable (STEAMCACHE_IP).”

and this traceback:

       Traceback (most recent call last):

File “/opt/rockstor/eggs/gunicorn-19.7.1-py2.7.egg/gunicorn/workers/sync.py”, line 68, in run_for_one
self.accept(listener)
File “/opt/rockstor/eggs/gunicorn-19.7.1-py2.7.egg/gunicorn/workers/sync.py”, line 27, in accept
client, addr = listener.accept()
File “/usr/lib64/python2.7/socket.py”, line 202, in accept
sock, addr = self._sock.accept()
error: [Errno 11] Resource temporarily unavailable

when i try to install it specifying the same ip i did when i ran it by it self.

i can’t really tell if i’m doing something wrong or if this might be a bug, but i’m hoping someone can help my shed a bit of light on this.

Hi @HBDK,

My first thought was that you were encountering the same issue as described below:
https://github.com/rockstor/rockstor-core/issues/1588

For which there was discussion on a pull-request by @anatox:
https://github.com/rockstor/rockstor-core/pull/1688/files

After a quick look at your combined json, however, there does not seem to be environment vairables in both of your containers–which was the issue described in the links above. Nevertheless, I seem to detect a couple of things that may upset Rockstor:

  1. both containers have the same “launch_order”.
  2. How are the two containers suppose to talk to each other? I suppose it’s through the STEAMCACHE_IP env, but I’m puzzled by the different ports that will most likely exist between systems.
1 Like

Hi

i just changed it so that the dns is launched second, but the result is the same.

the containers arn’t really “talking” to each other, one of them is a dns and will send traffic to certain servers to the other container instead of the intended destination. the other container then fetches the requested data and caches it before sending it to the client.

i can run them as two Rockons but it would be more convenient to have it as one.