Translate

2017年10月23日月曜日

Proxy環境下でHubotコンテナが起動しなくなった

前に書いた記事

HuBotを使ってRocketChat用のチャットボットを試しに作ってみる
https://fight-tsk.blogspot.jp/2017/04/hubotrocketchat.html

で書いたスクリプトがProxy環境下で動作しなくなってしまった
どうも

[GitHub] hubot-rocketchat
https://github.com/RocketChat/hubot-rocketchat

をcloneしてちくちくbuildしていくと
npmコマンドへのproxyを設定しないとビルドに失敗してしまうのだ。

Dockerfileの中でスイッチユーザしてたりして厄介だ..

..ということで、Dockerfileを自分で書いてみた。

ベースイメージはnodeの安定版がv6.11らしいので、コッチをつかってみた。


FROM node:6.11
MAINTAINER hara hara development

# change your setting or overwrite with build parameters
ARG HTTP_PROXY=http://proxy.server:8080
ARG HTTPS_PROXY=$HTTP_PROXY

USER root
RUN npm -g config set proxy $HTTP_PROXY && \
    npm -g config set https-proxy $HTTPS_PROXY && \
    npm -g config set registry http://registry.npmjs.org/ && \
    npm install -g yo generator-hubot && \
    npm install  -g hubot-rocketchat@1 && \
    useradd hubot -m
USER hubot
WORKDIR /home/hubot

# change your setting or overwrite command parameter
ENV ROCKETCHAT_URL=change_rocketchat_server:3000
ENV ROCKETCHAT_ROOM=
ENV BOT_OWNER="Change Your Name "
ENV BOT_NAME=bot
ENV BOT_DESC="change bot description"
ENV ROCKETCHAT_USER=bot
ENV ROCKETCHAT_PASSWORD=password
ENV ROCKETCHAT_AUTH=password
ENV LISTEN_ON_ALL_PUBLIC=true
ENV EXTERNAL_SCRIPTS=hubot-diagnostics,hubot-help,hubot-google-images,hubot-google-translate,hubot-pugme,hubot-maps,hubot-redis-brain,hubot-rules,hubot-shipit,hubot-jenkins-notifier,hubot-grafana
ENV TZ=Asia/Tokyo

RUN cd $HOME && \
    yo hubot --owner=$BOT_OWNER --name=$BOT_NAME --description=$BOT_DESC --adapter="rocketchat@1" && \
    node -e "console.log(JSON.stringify('$EXTERNAL_SCRIPTS'.split(',')))" > external-scripts.json && \
    npm install $(node -e "console.log('$EXTERNAL_SCRIPTS'.split(',').join(' '))")

EXPOSE 8080

CMD bin/hubot $BOT_NAME -a rocketchat



DockerfileENVARG指定を、各自の環境に合わせて変更して、

mkdir -p data && chmod a+rwx data && sudo docker build --name myhubot:latest .
sudo docker run -v data:/home/hubot/scripts -p3001:8080 mybot:latest

を実行してもいいし、

mkdir -p data && chmod a+rwx data
sudo docker build --name hara2/myhubot:latest --build-arg HTTP_PROXY=http://my,proxy:8080 --build-arg HTTPS_PROXY=http://my.proxy.8080 .
sudo docker run -e ROCKETCHAT_USER=mybot -e ROCKETCHAT_PASSWORD=mybotpass -v data:/home/hubot/scripts -p 3001:8080 hara2/myhubot:latest


と全部引数指定しても良い。

hubot-scripts.jsonexternal-scripts.jsonの扱いが今後も変わってきそうなので
このあたりまた動かかなくなるかもしれない。

けどDockerfileを見てもらったらわかると思うけど、
インストール手順に従っただけなので、
動かなくなったらちょこちょこ直して動かせるようにするにはそう難しい技術がいるわけでもない。

#ので、今後動かなくなっても、あとは各自でやってください..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...