0

我整理了一个简单的脚本以在iron.io中运行。我按照本教程中的步骤操作,但在测试期间失败。

$ 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>'

无论我尝试require还是relative_require. 知道我需要做什么来供应这种依赖关系吗?

4

1 回答 1

1

该错误消息意味着您正在尝试使用不在铁/红宝石图像中的东西。

要了解如何解决此问题,让我们看一下该映像的 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 并尝试在其上运行您的代码。

于 2016-12-21T15:30:33.230 回答