我如何用Docker启动一个IronWorker,而不需要为私有Docker存储库付费,也不需要将我的代码公开



我有多个Ruby应用程序使用IronWorker在crons中运行。我是Docker的新手,我想在将代码推送到Iron之前在本地测试应用程序。我怎么做呢?

您的代码可以私有地存储在Iron上。Docker上的io和镜像只能包含编程语言和库,并且可以公开。我整理了一个"hello world"示例,展示了如何做到这一点。我正在使用Alpine linux和Ruby编程语言以及Iron的开发包。我还包含了"pg" gem:

hello.rb

require 'pg'
puts "hello world"

Gemfile

source 'https://rubygems.org'
gem 'pg'

Dockerfile

FROM iron/ruby-2.3:dev
RUN apk update && apk upgrade
RUN gem install pg --no-ri --no-rdoc
COPY hello.rb /
RUN apk add bash

下面是运行该程序的步骤:

    在Docker上创建公共存储库

在此例中,Docker用户名为testuser, Docker存储库名为testrepo。

<
  • 构建图像/gh>

    在Docker终端中执行如下命令:我添加了一个标签"0.0.1"。这个值应该随着推送到Docker的映像的每次修改而增加。

    docker build -t testuser/testrepo:0.0.1 .
    
    <
  • 测试图像/gh>

    由于Dockerfile没有包含ENTRYPOINT ["ruby", "hello. "行,任何终端命令都可以包含在"docker run"命令中。要进入带有bash提示符的映像,可以运行:

    docker run -it testuser/testrepo:0.0.1 /bin/bash
    

    进入bash后,您可以查看代码是否可以执行:

    ruby hello.rb
    

    在这个例子中,我收到以下错误:

    `require': cannot load such file -- json (LoadError)
    

    要解决这个问题,请更新Dockerfile以安装json,然后重新测试映像。以下是更新后的Dockerfile:

    FROM iron/ruby-2.3:dev
    RUN apk update && apk upgrade
    RUN gem install pg --no-ri --no-rdoc
    RUN gem install json --no-ri --no-rdoc
    COPY hello.rb /
    RUN apk add bash
    

    现在我们知道代码将与镜像一起正确运行,我们可以更新Dockerfile并将镜像推送到Docker并将代码推送到Iron。

  • 删除你好。更新Dockerfile
  • 从铁/ruby - 2.3:

    dev
    RUN apk update &apk升级
    运行gem install pg——no-ri——no-rdoc
    RUN gem install json——no-ri——no-rdoc
    RUN apk add bash

    <
  • 重建图像/gh>

    docker build -t testuser/teststrepo:0.0.1 .

  • 将图片推送到Docker
  • docker push testuser/teststrepo:0.0.1

  • 用铁(需要铁)注册图像。
  • 铁寄存器testuser/testrepo:0.0.1

    Zip IronWorker代码

    zip -r hello.zip hello.rb

    上传工人到铁(需要铁)。

    iron worker upload——zip hello.zip——name hello testuser/testrepo:0.0.1 ruby hello.rb

    完成了!你现在可以通过HUD或者API来调度一个IronWorker。

    相关内容

    • 没有找到相关文章

    最新更新