株式会社スマレジの開発部でスマレジのサーバサイドを作っています

docker-composeでローカルでhttpsを試す

こんにちは!株式会社スマレジ、開発部のマサです。

秋も深くなってきましたねー。キンモクセイの甘い香りが通勤中に漂ってきて、季節を感じます。

今日は備忘録的な内容です。

DockerでHTTPSをローカルで利用する

ローカルでHTTPSで動作確認をしたいと思った時に調べた方法です。

以下の記事を参考にしました。

qiita.com

Dockerにはhttps-portalというコンテナが提供されています。

github.com

これをdocker-compose.ymlに記載すると、dockerで構築したコンテナをhttps可させてくれるという優れものです! しかも証明書の取得なども全部自動で!

https-portalのローカルオレオレ証明書機能

実際に書いたものを一部改変したdocker-composeはこちらです。

services:
  https-portal:
    image: steveltn/https-portal:1
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - web
    restart: always
    environment:
      DOMAINS: 'localhost.example.com -> http://web'
      STAGE: local
    volumes:
      - ./org-chimata-ssl-certs:/var/lib/https-portal
  web:
    build: ./v1
    volumes:
      - ./v1:/var/www/html
      - ./docker/php.ini:/usr/local/etc/php/php.ini

記載の仕方はフーンこんなもんかと思っていただければ。

ポイントはSTAGE: localの指定です。 これ、STAGE: productionに変更すると、さっき言った証明書取得をして、localだとオレオレ証明書に切り替えてくれるんです。 頭いい・・・! ドメインの指定もできるので、複数コンテナを立ち上げて、ドメインを切り替えて開発している人も対応できるのがうれしいですね。

というわけで、備忘録とちょっと感動したので書いてみました。