How can I solve “crontab: your UID isn't in the passwd file. bailing out.”?

Hi I’m using Docker and whenever to write cron schedule rules, but when I run whenever --update-crontab in my docker container this errors is showing to me.

crontab: your UID isn't in the passwd file.
bailing out.
[fail] Couldn't write crontab; try running `whenever' with no options to ensure your schedule file is valid.

Dockerfile

  • Issue staring docker container with nginx and passenger
  • Rapid virtualization with “fork from here” to a new LXC/docker container
  • Add a potentially large amount of metadata to a docker image
  • docker install on private network without network instructions
  • Killing a Process in a Running Docker Container
  • Connecting a Docker container running PHP to the host's(ubuntu on VirtualBox) MSQL server
  • FROM ruby:2.4.1-slim
    RUN apt-get update && apt-get -y install cron
    ENV RAILS_ENV production
    
    ENV INSTALL_PATH /app
    
    RUN mkdir -p $INSTALL_PATH
    WORKDIR $INSTALL_PATH
    
    
    COPY Gemfile Gemfile.lock ./
    RUN bundle install --binstubs --jobs 20 --retry 5
    
    COPY . .
    RUN chown -R nobody:nogroup /app
    USER nobody
    
    # use docker run -it --entrypoint="" demo "ls -la" to skip
    EXPOSE 3000
    
    CMD puma -C config/puma.rb
    

    Docker Version: Docker version 17.05.0-ce, build 89658be

    My Docker compose file

      chatbot_web:
        container_name: chatbot_web
        depends_on:
          - postgres
          - chatbot_redis
          - chatbot_lita
        user: "1000:1000"
        build: .
        image: dpe/chatbot
        ports:
          - '3000:3000'
        volumes:
          - '.:/app'
        restart: always
    

    How can I solve this?

    EDIT:
    When I use:

    host$ docker run -it dpe/chatbot bash
    container $ whenever --update-cron
    [write] crontab file updated
    

    Works, but when I use:

    host$ docker exec -it chatbot_web bash                                                                                                                                                                                               
    I have no name!@352c6a7500d2:/app$ whenever --update-cron
    crontab: your UID isn't in the passwd file.
    bailing out.
    [fail] Couldn't write crontab; try running `whenever' with no options to ensure your schedule file is valid.
    

    Don’t Work =(

  • Kubernetes cluster attempts endless gcr.io DNS lookups, swamping the router. What is wrong and how can I put a stop to it?
  • Daemon started with “docker run daemon” is not working
  • Running Xephyr inside a docker container
  • Docker port binding not working as expected
  • OpenCV error when Docker container is run on GKE
  • How to bring credentials into a Docker container during build
  • One Solution collect form web for “How can I solve “crontab: your UID isn't in the passwd file. bailing out.”?”

    To fix I use same user in Dockerfile and docker-compose

    Dockerfile

    RUN chown -R nobody:nogroup /app
    USER nobody
    

    Docker Compose

      chatbot_web:
        user: "nobody:nogroup"
    
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.