repl.info

Rubotyで作ったbotをkubernetes上で動かす

Botを作る方法の一つに、r7kamura/rubotyがある。これをKubernetes上で動かしたかったので、メモをとっておく。今回は、ruboty-slack_rtmを使ったSlackBotとする。

source "https://rubygems.org"



git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }



gem 'ruboty-slack_rtm'

環境変数としてSLACK_TOKENを指定してrubotyコマンドを実行すればSlack Botとなる。

さて、これをKubernetes上で動かしたい。まずはDockerfile。

FROM ruby:2.5.1-alpine3.7

RUN apk update && \

    apk add build-base openssl



ADD . /opt/ruboty



WORKDIR /opt/ruboty

RUN bundle install --path vendor/bundle



ENTRYPOINT bundle exec ruboty

次にKubernetesのマニフェスト。

apiVersion: v1

kind: Pod

metadata:

  name: ruboty

spec:

  containers:

  - name: ruboty

    image: ruboty:latest

    imagePullPolicy: IfNotPresent

    env:

      - name: SLACK_TOKEN

        valueFrom:

          secretKeyRef:

            name: ruboty

            key: slack_token.txt

これでOK。RubotyでこれまでBotをいろいろ作ってきて、Kubernetesに載せ替えたい時はこんな感じでOKであろう。

ref: https://github.com/takaishi/hello2018/tree/master/ruboty-on-k8s