ブログでプロキシ環境下の設定を書くといっていたので、忘れないうちに公開します。
ベースとしてこちらをローカルに内容コピーして別途作成しました。
https://github.com/jasl8r/docker-mattermost
下記ファイル以外は、すべて上記リポジトリのものをいただきました。
- アプリノードのDockerfile
FROM alpine:3.4
ENV MATTERMOST_VERSION=3.8.2 \
MATTERMOST_HOME="/opt/mattermost"
ENV MATTERMOST_DATA_DIR="${MATTERMOST_HOME}/data" \
MATTERMOST_BUILD_DIR="${MATTERMOST_HOME}/build" \
MATTERMOST_RUNTIME_DIR="${MATTERMOST_HOME}/runtime" \
MATTERMOST_INSTALL_DIR="${MATTERMOST_HOME}/mattermost" \
MATTERMOST_CONF_DIR="${MATTERMOST_HOME}/config" \
MATTERMOST_LOG_DIR="/var/log/mattermost"
ENV HTTP_PROXY="http://username:password@proxyhost:port/" \
HTTPS_PROXY="http://username:password@proxyhost:port/"
RUN apk --no-cache add bash gettext \
mysql-client postgresql-client \
ca-certificates
COPY assets/build/ ${MATTERMOST_BUILD_DIR}/
RUN bash ${MATTERMOST_BUILD_DIR}/install.sh
COPY assets/runtime/ ${MATTERMOST_RUNTIME_DIR}/
COPY entrypoint.sh /sbin/entrypoint.sh
RUN chmod 755 /sbin/entrypoint.sh
EXPOSE 80/tcp
VOLUME ["${MATTERMOST_DATA_DIR}", "${MATTERMOST_LOG_DIR}"]
WORKDIR ${MATTERMOST_INSTALL_DIR}
ENTRYPOINT ["/sbin/entrypoint.sh"]
CMD ["app:start"]
- DB含む全体のdocker-compose.yml
mysql:
restart: always
image: mysql:latest
environment:
- MYSQL_USER=username
- MYSQL_PASSWORD=password
- MYSQL_DATABASE=mattermost
- MYSQL_ROOT_PASSWORD=password
volumes:
- ./db/mysql:/var/lib/mysql
mattermost:
restart: always
build: app
links:
- mysql:mysql
ports:
- "8082:80"
environment:
- SMTP_HOST=host
- SMTP_PORT=25
- SMTP_USER=user
- SMTP_PASS=pass
- SMTP_SECURITY=
- MATTERMOST_SITE_URL=http://mattermosthostname:8082
- MATTERMOST_SECRET_KEY=raaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaandomtext
- MATTERMOST_LINK_SALT=raaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaandomtext
- MATTERMOST_RESET_SALT=raaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaandomtext
- MATTERMOST_INVITE_SALT=raaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaandomtext
- MATTERMOST_ENABLE_SLASH_COMMANDS=true
- MATTERMOST_ENABLE_INCOMING_WEBHOOKS=true
- MATTERMOST_ENABLE_OUTGOING_WEBHOOKS=true
- MATTERMOST_WEBHOOK_OVERRIDE_USERNAME=true
- MATTERMOST_WEBHOOK_OVERRIDE_ICON=true
- NO_PROXY=mattermosthost
volumes:
- ./app/mattermost:/opt/mattermost/data
以前Mattermostをv3.5.1からv3.7.3にアップした際、entrypoint.sh内の次のコマンドでこけました。
./bin/platform -config ${MATTERMOST_CONF_DIR}/config.json
どうやらv3.6からCLIのシンタックスが変わっていたようです。
https://docs.mattermost.com/administration/command-line-tools.html#platform
オプションのハイフンが1つ多く必要です。
./bin/platform --config ${MATTERMOST_CONF_DIR}/config.json
バージョンアップ時にこういう細かい変更に気づきづらいのは、自分でDockerfileから作ってない弊害ですね・・・
他人のDockerfileを使う際は、ざっと中身を読んでおいたほうが良いと思います。
おまけ:hubotのプロキシ対応について
どうやらできるプラグインもあるらしいですが、不安定なようですね・・・
うちの場合はpug meとかの機能は要らないと思っていて、さらに社内・社外のAPIとのやり取りも作り込む必要があるので、ゲートウェイ代わりのJVMアプリを作成して落ち着かせようと思っています。