2017-07-04 2 views
0

こんにちは私はDockerwheneverを使用してcronのスケジュールルールを書いていますが、私はwhenever --update-crontabを私のドッカーコンテナに入れてこのエラーを表示しています。どのように私は "crontabを解決することができます:あなたのUIDはpasswdファイルにありません。

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

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 17.05.0-ce, build 89658be

私ドッカーは、ファイル

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 

どのように私はこの問題を解決することができますを構成しますか?

EDIT: 私が使用:

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

動作しますが、私が使用します。

host$ docker exec -it chatbot_web bash                                                
I have no [email protected]:/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. 

が、私は同じユーザーを使用修正するには(=

+1

私はあなたがcrontabのジョブをスケジュールするために、間違ったユーザー名を使用していると思います。 –

+1

どうすれば再現できますか?あなたのホスト、Dockerのバージョン、 'Dockerfile'、' docker run'コマンドに関する情報は一切与えていません。可能であれば、それを再現するための十分な情報をお知らせください。 –

+0

@AndyShinn申し訳ありませんが、私は私の答えを更新! –

答えて

0

動作しません。 Dockerfileとドッカーの作成で

Dockerfile

RUN chown -R nobody:nogroup /app 
USER nobody 

ドッカー作曲

chatbot_web: 
    user: "nobody:nogroup" 
関連する問題