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

  • regex string doesn't seem to work in ELK stack
  • How to set/get the project name in docker-compose.yml
  • How can i execute commands inside containers during host provision
  • Execute docker commands from java/jsp/html page
  • Reproducible Docker builds - long-term storage/restoring
  • Docker images won't start sometime and it error logs says something I cannot understand
  • 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 =(

  • RTMP Streaming does not work from Docker container
  • Destination location when using ADD command if <dest> is not provided
  • Docker can't connect containers
  • kubernetes unhealthy ingress backend
  • Node https.request to Docker API closes before full result is returned
  • When does Docker write to iptables?
  • 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.