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