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

Pocket

Botを作る方法の一つに、/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

Leave a Reply

Your email address will not be published. Required fields are marked *