title: Docker - Celery as a daemon - no pidfiles found
body: <p>I seem to have tried every solution on here but none seem to be working, I'm not sure what I'm missing. Im trying to run celery as a daemon through my docker container.</p>
  
  <pre><code>root@bae5de770400:/itapp/itapp# /etc/init.d/celeryd status
  celery init v10.1.
  Using config script: /etc/default/celeryd
  celeryd down: no pidfiles found
  root@bae5de770400:/itapp/itapp# /etc/init.d/celerybeat status
  celery init v10.1.
  Using configuration: /etc/default/celeryd
  celerybeat is down: no pid file found
  root@bae5de770400:/itapp/itapp#
  </code></pre>
  
  <p>I've seen lots of posts to do with perms and I've tried them all to no avail.</p>
  
  <p>this is my docker file which creates all the perms and folders</p>
  
  <pre><code>FROM python:latest
  ENV PYTHONUNBUFFERED 1
  
  # add source for snmp
  RUN sed -i "s#jessie main#jessie main contrib non-free#g" /etc/apt/sources.list
  # install dependancies
  RUN apt-get update -y \
      &amp;&amp; apt-get install -y apt-utils python-software-properties libsasl2-dev python3-dev libldap2-dev libssl-dev libsnmp-dev snmp-mibs-downloader git vim
  
  # copy and install requirements
  RUN mkdir /config  
  ADD /config/requirements.txt /config/  
  RUN pip install -r /config/requirements.txt  
  # create folders
  RUN mkdir /itapp;
  RUN mkdir /static;
  # create celery user
  RUN useradd -N -M --system -s /bin/false celery
  RUN echo celery:"*****" | /usr/sbin/chpasswd
  # celery perms
  RUN groupadd grp_celery
  RUN usermod -a -G grp_celery celery
  RUN mkdir /var/run/celery/
  RUN mkdir /var/log/celery/
  RUN chown root:root /var/run/celery/
  RUN chown root:root /var/log/celery/
  # copy celery daemon files
  ADD /config/celery/init_celeryd /etc/init.d/celeryd
  RUN chmod +x /etc/init.d/celeryd
  ADD /config/celery/celerybeat /etc/init.d/celerybeat
  RUN chmod +x /etc/init.d/celerybeat
  RUN chmod 755 /etc/init.d/celeryd
  RUN chown root:root  /etc/init.d/celeryd
  RUN chmod 755 /etc/init.d/celerybeat
  RUN chown root:root /etc/init.d/celerybeat
  # copy celery config
  ADD /config/celery/default_celeryd /etc/default/celeryd
  # RUN /etc/init.d/celeryd start
  # set workign DIR for copying code
  WORKDIR /itapp
  </code></pre>
  
  <p>if I start it manually it works</p>
  
  <pre><code>celery -A itapp worker -l info
  /usr/local/lib/python3.6/site-packages/celery/platforms.py:795: RuntimeWarning: You're running the worker with superuser privileges: this is
  absolutely not recommended!
  
  Please specify a different user using the -u option.
  ...
  
  [2017-09-25 17:29:51,707: INFO/MainProcess] Connected to amqp://it-app:**@rabbitmq:5672/it-app-vhost
  [2017-09-25 17:29:51,730: INFO/MainProcess] mingle: searching for neighbors
  [2017-09-25 17:29:52,764: INFO/MainProcess] mingle: all alone
  </code></pre>
  
  <p>the init.d files are copied from the celery repo and this is the contents of my default file if it helps</p>
  
  <pre><code># Names of nodes to start
  #   most people will only start one node:
  CELERYD_NODES="worker1"
  #   but you can also start multiple and configure settings
  #   for each in CELERYD_OPTS
  #CELERYD_NODES="worker1 worker2 worker3"
  #   alternatively, you can specify the number of nodes to start:
  #CELERYD_NODES=10
  
  # Absolute or relative path to the 'celery' command:
  CELERY_BIN="/usr/local/bin/celery"
  
  # App instance to use
  # comment out this line if you don't use an app
  CELERY_APP="itapp"
  # or fully qualified:
  
  # Where to chdir at start.
  CELERYD_CHDIR="/itapp/itapp/"
  
  # Extra command-line arguments to the worker
  CELERYD_OPTS="flower --time-limit=300 --concurrency=8"
  # Configure node-specific settings by appending node name to arguments:
  #CELERYD_OPTS="--time-limit=300 -c 8 -c:worker2 4 -c:worker3 2 -Ofair:worker1"
  
  # Set logging level to DEBUG
  #CELERYD_LOG_LEVEL="DEBUG"
  
  # %n will be replaced with the first part of the nodename.
  CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
  CELERYD_PID_FILE="/var/run/celery/%n.pid"
  
  # Workers should run as an unprivileged user.
  #   You need to create this user manually (or you can choose
  #   a user/group combination that already exists (e.g., nobody).
  CELERYD_USER="celery"
  CELERYD_GROUP="celery"
  
  # If enabled pid and log directories will be created if missing,
  # and owned by the userid/group configured.
  CELERY_CREATE_DIRS=1
  </code></pre>
  
  <p>the only thing in this file which may be wrong I think is the CELERY_BIN value, I'm not sure what to set that too in a docker container</p>
  
  <p>Thanks</p>