2016-12-19 5 views
0

iron.io에서 실행되는 간단한 스크립트를 작성했습니다. in this tutorial 단계를 따르지만 테스트하는 동안 실패합니다. 내가 require 또는 relative_require을 시도 여부를루비에 대한 의존성을 요구하는 방법 IronWorker

$ docker run --rm -it -e "SLACK_API_TOKEN="xox-LALLALA"" -v "$PWD":/worker -w /worker iron/ruby ruby bubbebot.rb 
bubbebot.rb:1:in `require_relative': cannot load such file -- /worker/slack-ruby-client (LoadError) 
    from bubbebot.rb:1:in `<main>' 

그것은 실패입니다. 이 의존성을 벤더에게 맡길 필요가있는 어떤 아이디어?

답변

1

그 오류 메시지는 iron/ruby ​​이미지에없는 것을 사용하려고한다는 것을 의미합니다.

이의 그 이미지의 Dockerfile에서 살펴 보자,이 문제를 해결하는 방법을 이해하려면

FROM iron/base RUN apk update && apk upgrade \ && apk add libxml2 libxslt libevent libffi glib ncurses readline \ openssl yaml zlib curl mariadb-libs libpq ruby ruby-io-console \ ruby-bigdecimal \ && rm -rf /var/cache/apk/*

를 그 빌드에없는 뭔가를 사용하려는 경우, 당신은해야합니다 직접 추가하십시오. 나만의 맞춤형 Docker 이미지를 만들 것을 제안합니다. 이 라인을 따라 뭔가가 작동합니다 : FROM iron/ruby:2.3.1-dev RUN apk add && apk update RUN gem install slack --no-ri --no-rdoc RUN rm -rf /var/cache/apk/*

이미지를 빌드하고 Dockerhub에 밀어 넣고 코드를 실행 해보십시오.

+0

실제 'ah ha'는 느슨한 클라이언트의'--no-rdoc' 설치에서 온 것입니다. 고마워. FWIW, 나는 Docker 이미지가 거대하지 못하게하는'-dev'를 피합니다. – mbb