Repository: Cloud-CV/EvalAI
Issue: Composing Dockerfiles not properly working
Root cause: Configuration Error


Hey, as requested on the gitter, I open an issue regarding the Dockerfile.
The expected behavior is to run the docker compose in order to have a full EvalAI ready.

For the observed behavior,various issues happens, mostly the nodejs image where sass can't be installed.
I know that switching the docker to an ubuntu16:04 image solve the issue.
However, the compose still does  not work, and especially the submisson working exit immediatly.

To reproduce the  issue, just try the docker-compose module as it is.


@rdoume: would you mind sharing the error log here that you are getting? It would be easier to debug then. 

This seems to be something I should be able to quickly fix.
@rdoume can you please paste the error logs here?

Ok, so I isolated the problem with the evalai_nodejs docker.
When running the compose, the evalai_nodejs container stops, and the logs says: 

> docker logs 42f4d2677a56
> [09:25:21] Local gulp not found in /code
> [09:25:21] Try running: npm install gulp
>

However when i run as a standalone the image evalai_nodejs, this is my result : 

>  docker logs 6f482c3dd140
> [09:26:23] Using gulpfile /code/gulpfile.js
> [09:26:23] Starting 'dev:runserver'...
> [09:26:23] Starting 'dev'...
> [09:26:23] Starting 'clean'...
> [09:26:23] Finished 'clean' after 3.15 ms
> [09:26:23] Starting 'css'...
> [09:26:23] Starting 'js'...
> [09:26:23] Finished 'js' after 11 ms
> [09:26:23] Starting 'html'...
> [09:26:23] Finished 'html' after 1.37 ms
> [09:26:23] Starting 'images'...
> [09:26:23] Starting 'vendorjs'...
> [09:26:23] Finished 'vendorjs' after 12 ms
> [09:26:23] Starting 'vendorcss'...
> [09:26:23] Finished 'vendorcss' after 11 ms
> [09:26:23] Starting 'fonts'...
> [09:26:23] Starting 'configDev'...
> [09:26:23] Finished 'configDev' after 1.15 ms
> [09:26:23] Finished 'fonts' after 102 ms
> [09:26:23] Finished 'images' after 128 ms
> [09:26:23] directory ./
> [09:26:23] write ./main.css
> [09:26:23] Finished 'css' after 646 ms
> [09:26:23] Starting 'inject'...
> [09:26:23] Finished 'inject' after 1.59 ms
> [09:26:23] Finished 'dev' after 652 ms
> [09:26:23] Starting 'lint'...
> [09:26:24] gulp-inject 11 files into base.html.
> [09:26:24] Finished 'lint' after 526 ms
> [09:26:24] Starting 'connect'...
> [09:26:24] Finished 'connect' after 8.91 ms
> [09:26:24] Starting 'watch'...
> [09:26:24] Finished 'watch' after 77 ms
> [09:26:24] Starting 'test:watch'...
> 29 09 2017 09:26:24.503:ERROR [config]: File /code/karma.conf.js does not exist!

I tried to play around with this issue, but as it's my first interaction with gulp and node, nothing really came out of it.


Thanks @varunagrawal for taking lead on this. Let me know if you need help with something in this. 

I also wanted to leave a note that endusers who want to build the docker containers need to rename the settings/dev.sample.py file to settings/dev.py in order for the submission-worker container to run. This should also be documented in the README.md.

I thought this was already documented in the Readme. I remember reading this, but thanks for the update. I'll update it accordingly. 

Yes, I see it now, but it wasn't part of the docker instructions. I considered those two different deployment methods (as in the docker worked out of the box with no configuration). 

@mooshu1x2 thanks for the keen observation. :) Opening an issue for the same. 

Ok great that the README issue was taken care of.
Quick update: It seems that the `sass` gem is failing to install since we are using Ubuntu 14.04 as our base image. I have constrained the gem version to successfully install but we should begin a conversation on updating the base image as well. :) 

@rdoume @deshraj aaaand this is fixed!

Yup, indeed everything look fine running the compose.
However it  seems the django docker cannot see the files, as when I make a request on localhost:8888, I get this on the page : 

> Cannot GET /

the logs on the docker of the Django shows me this : 

> [2017-10-12 08:23:33] INFO "GET / HTTP/1.1" 200 117
> [2017-10-12 08:23:33] WARNING "GET /favicon.ico HTTP/1.1" 404 4506




@rdoume that's simply because the favicon is missing in the Django code. Having a favicon doesn't make much sense because it is the backend and doesn't output any html files. :) 

The nodejs frontend should be the one seeing the favicon.

@varunagrawal: sorry, I have been traveling and didn't get the chance to review this one. I will review and will let you know that status soon.

@deshraj chill dude. Enjoy Mountain View :) 

@varunagrawal I agree with that, but then I do not understand why this is happening in the logs. 

@rdoume: there is a high probability that this is due to caching on the browser. It is trying to request for `/favicon.ico` which is not there.