先日、クライマーがセッション仲間募集する用のマッチングサイトをつくろうと思いOsclassをdockerでインストールした。で、SSL化をletsencrypt-nginx-proxy-companionでしたのだけど、そのままだとOsclassが生成するリンク先がhttpになってしまいCSSやらがうまくよ見込めなかったのでその対処メモ。
基本は以下のものを使用。
https://hub.docker.com/r/bitnami/osclass/
GitHubにもあるのでクローンした方が楽。
https://github.com/bitnami/bitnami-docker-osclass
version: '2' services: mariadb: image: 'bitnami/mariadb:latest' environment: - MARIADB_USER=bn_osclass - MARIADB_DATABASE=bitnami_osclass - ALLOW_EMPTY_PASSWORD=yes volumes: - 'mariadb_data:/bitnami' networks: - default osclass: image: 'bitnami/osclass:latest' environment: - MARIADB_HOST=mariadb - MARIADB_PORT_NUMBER=3306 - OSCLASS_HOST=boltomo.bouldering-climbing.kyoto - OSCLASS_DATABASE_USER=bn_osclass - OSCLASS_DATABASE_NAME=bitnami_osclass - OSCLASS_USERNAME=huga - OSCLASS_PASSWORD=hoge - ALLOW_EMPTY_PASSWORD=yes - VIRTUAL_HOST=boltomo.bouldering-climbing.kyoto - LETSENCRYPT_HOST=boltomo.bouldering-climbing.kyoto - LETSENCRYPT_EMAIL=hoge@fuga.com labels: kompose.service.type: nodeport ports: - '80' #443は削除 depends_on: - mariadb volumes: - 'osclass_data:/bitnami' networks: - default - mydcproxy_default volumes: mariadb_data: driver: local osclass_data: driver: local networks: mydcproxy_default: external: true
VIRTUAL_HOST=boltomo.bouldering-climbing.kyoto – LETSENCRYPT_HOST=boltomo.bouldering-climbing.kyoto – LETSENCRYPT_EMAIL=hoge@fuga.com
はletsencrypt-nginx-proxy-companion用の設定。
リバースプロキシはいろいろな所から呼ばれるので別のdocker-composeになっていてそのネットワーク名がmydcproxy_defaultとしているので外部ネットワークとして
networks: – default – mydcproxy_defaultとかnetworks: mydcproxy_default: external: trueとかを指定している。
(参考)
http://tech.quartetcom.co.jp/2017/04/11/multiple-ssl-apps-on-one-docker-host/
青字の- OSCLASS_USERNAME=huga – OSCLASS_PASSWORD=hoge は実際には設定していないけどコピペしてデフォルトID/Passで走らせることがないようにhttps://hub.docker.com/r/bitnami/osclass/みて追記。(動かしていないのでコケるかもしれない)
で、本題のそのまま動かすとOsclassの動くコンテナはリバースプロキシの後ろでhttpで動いており、生成されるリンク先がhttpになってしまう。
一応、以下のように設定ファイルを直接変更して動いた。
docker exec -it boltomo_osclass_1 /bin/bash
cd /opt/bitnami/osclass/
sed -e ‘s/http/https/g’ config.php
define(‘WEB_PATH’, ‘https://boltomo.bouldering-climbing.kyoto/’);
dockerfile作って自動化した方がいいけど、Osclassの使い勝手が要件に対して微妙だったのでこれ以上の作業はせずに修了。
X-Forwarded-Protoとかは試していないけどもっとおしゃれな解決法はあるかもしれない。