title: Celery and Flask in same docker-compose
body: <p>I'm trying to use <code>docker-compose</code> to spawn my Flask/Celery/Redis services.</p>
  
  <p>Here's my <code>docker-compose.yml</code>:</p>
  
  <pre><code>flask:
      build: .
      command: "python3 app.py"
      ports:
          - '5000:5000'
      links:
          - redis
      volumes:
          - .:/usr/src/app:ro
  
  celery:
      build: .
      command: "celery -A app.celery worker --loglevel=info"
      volumes:
          - .:/usr/src/app:ro
  
  redis:
      image: redis
      ports:
          - '6379:6379'
  </code></pre>
  
  <p>When I run this <code>docker-compose</code>, both Flask and Redis start fine and function as expected. Regarding Celery, Docker reports: <code>flaskcelery_celery_1 exited with code 1</code>, with no other info.</p>
  
  <p>If I run my three services without Docker, and start Celery with <code>celery -A app.celery worker --loglevel=info</code>, my app functions just fine.</p>
  
  <p>Some more info, if necessary:</p>
  
  <p>Dockerfile: (this image installs <code>requirements.txt</code> on build as well)</p>
  
  <pre><code>FROM python:3.5-onbuild
  EXPOSE 5000
  </code></pre>
  
  <p>requirements.txt:</p>
  
  <pre><code>flask==0.11.1
  celery==3.1.23
  </code></pre>
  
  <p><code>docker-compose up</code> output:</p>
  
  <pre><code>Starting flaskcelery_celery_1
  Starting flaskcelery_redis_1
  Starting flaskcelery_flask_1
  Attaching to flaskcelery_celery_1, flaskcelery_redis_1, flaskcelery_flask_1
  redis_1  |                 _._                                                  
  redis_1  |            _.-``__ ''-._                                             
  redis_1  |       _.-``    `.  `_.  ''-._           Redis 3.2.3 (00000000/0) 64 bit
  redis_1  |   .-`` .-```.  ```\/    _.,_ ''-._                                   
  redis_1  |  (    '      ,       .-`  | `,    )     Running in standalone mode
  redis_1  |  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
  redis_1  |  |    `-._   `._    /     _.-'    |     PID: 1
  redis_1  |   `-._    `-._  `-./  _.-'    _.-'                                   
  redis_1  |  |`-._`-._    `-.__.-'    _.-'_.-'|                                  
  redis_1  |  |    `-._`-._        _.-'_.-'    |           http://redis.io        
  redis_1  |   `-._    `-._`-.__.-'_.-'    _.-'                                   
  redis_1  |  |`-._`-._    `-.__.-'    _.-'_.-'|                                  
  redis_1  |  |    `-._`-._        _.-'_.-'    |                                  
  redis_1  |   `-._    `-._`-.__.-'_.-'    _.-'                                   
  redis_1  |       `-._    `-.__.-'    _.-'                                       
  redis_1  |           `-._        _.-'                                           
  redis_1  |               `-.__.-'                                               
  redis_1  | 
  redis_1  | 1:M 23 Aug 10:23:08.409 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
  redis_1  | 1:M 23 Aug 10:23:08.409 # Server started, Redis version 3.2.3
  redis_1  | 1:M 23 Aug 10:23:08.409 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
  redis_1  | 1:M 23 Aug 10:23:08.409 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never &gt; /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
  redis_1  | 1:M 23 Aug 10:23:08.409 * The server is now ready to accept connections on port 6379
  flaskcelery_celery_1 exited with code 1
  flask_1  |  * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
  flask_1  |  * Restarting with stat
  flask_1  |  * Debugger is active!
  flask_1  |  * Debugger pin code: 196-119-737
  </code></pre>