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

  • Get hostname in Logstash running in a Docker container
  • Canonical Way to Connect to Service on Host from Docker Container
  • How can you run a Docker container if it doesn't exist yet, or start it if it does?
  • On Docker for Mac what would be the host ip as seen from the container? [duplicate]
  • Properly automate a docker script in Python
  • Issues with docker 1.2
  • 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 =(

  • AWS Elastic Beanstalk Docker main command
  • Why can't you install docker natively in osx? [closed]
  • DockerFile / Switch from ubuntu:latest to alpine:3.3
  • Specify location of volumes in docker
  • is there a way to do bind particular port on host to container port using docker file
  • Remote selenium on Docker does not handle Javascript correctly
  • 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.