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