Indico docker containers issues

Hi,
I have cloned the repo from indico/indico-containers and after running “docker-compose up” I run into issues where celery never starts. Here is what my logs show:

Do you have any suggestions for me to get this working?
Cheers

You probabaly need to create a data (and maybe a data/redis and data/log ) directory first.

Hi,
Thanks for your response. Those directories were already there:
indico % ls data
log redis

The you need to check why the redis service is not coming up.
what is the output of docker-compose log redis (in a second terminal)?

Hi,
Redis is working, it’s celery that is failing as you can see in my initial snapshot. It can’t get a 200 response from http://indico-web:59999

docker-compose logs indico-redis shows this:

while the logs for indico-celery display this:
image

I wonder if this check broke when we added enforcement hat the Host header needs to match the hostname from BASE_URL

from the the indico-celery container issuing this cmd:
curl http://indico-web:59999
returns an html page that includes this:

if I issue the command found in the run_celery.sh script:
curl -L --max-time 10 -s -o /dev/null -w ‘’%{http_code}‘’
then the response is 404, not the expected 200 that will then start the celery worker:

image

Does celery really need a running web service? I don’t think so, so the check seems superfluos here.

That’s how it is in the run_celery.sh script:

Try to just remove the 'waiting for indico web and the while loop. The celerey workeer can run just fine without the web frontend

Hello,
Yes I tried that earlier and it worked, I have to do it from inside the container. However every time “docker-compose down” is run this file is then reset to its original.

Yes, you would need to rebuild the image with the new version of the entrypoint script ( or as a band-aid mount the entrypoint script from the docker-compose file)

Hello,
Unless I am doing something wrong (probably i am), I can’t rebuild the image so that it uses the updated run_celery.sh script. I deleted the image and then ran “docker-compose up --build” but that didn’t work.
I also tried and added this line to the list of volumes for the indico-web service in the docker-compose.yml:

  • ‘./indico/worker/run_celery.sh:/opt/indico/run_celery.sh’
    but it didn’t work either.
    I then replaced the image to pull from, by a build command to use instead the Dockerfile under indico/worker:
    image

that successfully copied and used the updated script but eventually the site failed to start with an Internal Server Error. It complains about a missing db table:

This indicates that the new build is from a newer indico version, so either do a indico db upgrade ( I guess you could even put it in the entrypoint script) or make sure the build uses the crrect source checkout (I did not check how this repo does set up things):

I have made some changes and have this working although a few warnings keep appearing like these:


Also once the site is up I see a message that says I am running an old Indico version even though I am pulling from the latest tag from docker hub:
image

there warnings are safe to ignore; and it looks like we haven’t released a 3.2 docker image yet (just an oversight!)

I have the same issue, what did you do to solve it?

Thanks in advance.

Hi,
It’s been a while since I dealt with this issue but from what I see, I commented out the while loop that waits for indico-web (in run_celery.sh)
Hope that helps
Cheers

I did this but the red msg still appearing:

I think that i’ll will use OSEM in place of indico.

Anyway thanks.