LoginSignup
0
3

More than 5 years have passed since last update.

プロキシ環境下でMattermostをDockerで運用する

Last updated at Posted at 2017-05-28

ブログでプロキシ環境下の設定を書くといっていたので、忘れないうちに公開します。


ベースとしてこちらをローカルに内容コピーして別途作成しました。
https://github.com/jasl8r/docker-mattermost

下記ファイル以外は、すべて上記リポジトリのものをいただきました。

  • アプリノードのDockerfile
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
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アプリを作成して落ち着かせようと思っています。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3