docker-composeでPHP+ssl開発環境

Docker

お久しぶりです。せいゆーです。

以前、docker-composeを使ったPHP開発(docker-composeで簡単PHP開発)を書きましたが、今回はそれの続きです。ちなみにもうこれ動きません・・・

今回は以前のもの+sslを導入しようと思います。

スポンサーリンク

gitリポジトリ

今回使うリポジトリはこちらdocker-php-dev

前回のものとさほど変わらないです

Let’s Encryptによるsslに対応しました。

docker-compose.yml

version: '3.5'
services:
  https-portal:
    image: steveltn/https-portal:1
    ports:
      - '80:80'
      - '443:443'
    links:
      - web
    environment:
      STAGE: 'local'
      DOMAINS: 'test.localhost -> http://web:8080'
      # FORCE_RENEW: 'true'
  # web用コンテナ
  web:
      image: seiyu/php7.3port8080:latest
      container_name: seiyu_web_server
      ports:
        - '127.0.0.1:8080:8080'
      volumes:
        - ./app:/var/www/html
        - ./log:/var/log/apache2
        - ./web/apache.conf:/etc/apache2/sites-available/apache.conf
      networks:
        default:
          ipv4_address: 172.16.0.4
      environment:
        TZ: Asia/Tokyo
  db:
      image: seiyu/db5.7:latest
      container_name: seiyu_db_server
      ports:
        - "127.0.0.1:3306:3306"
      volumes:
        # 初期データを投入するSQLが格納されているdir
        - ./db/mysql_init:/docker-entrypoint-initdb.d
        # 永続化するときにマウントするdir
        - ./db/mysql_data:/var/lib/mysql
      environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_USER: tech
        MYSQL_PASSWORD: tech
        TZ: Asia/Tokyo
      networks:
        default:
          ipv4_address: 172.16.0.5
networks:
  default:
    name: app_net
    driver: bridge
    ipam:
     driver: default
     config:
       - subnet: 172.16.0.0/24

https-portalがhttps化を行うリバースプロキシになっています。
そのためhttps-portalが80,443番ポートを使い
webの部分は8080ポートを使用しています。

今回重要なのは

 DOMAINS: 'test.localhost -> http://web:8080'

の部分のみです。
これはtest.localhostでアクセスがあった場合、http://web:8080(web用コンテナ)を実行するようになっています。

開発時の複数ドメイン対応

開発時に複数ドメインに対応したい場合は以下の設定を行ってください

 DOMAINS: 'test.localhost -> http://web:8080, test2.localhost -> http://web:8080'

それぞれtest.localhostとtest2.localhostをwebコンテナの8080番ポートへ振り分けてくれます。
両方ともweb:8080なのはwebコンテナ側のapache.confが適宜判別してくれます。

もちろんapache.confの修正もする必要があります。

<VirtualHost *:8080>
  ServerName test2.localhost
  ServerAdmin 〇〇@〇〇.com
  ServerAlias test2.localhost
  DocumentRoot "/var/www/html/test2/public"
  ErrorLog /var/log/apache2/test2_error.log
  CustomLog /var/log/apache2/test2_access.log common
</VirtualHost>

apacheやDBの設定についてはここでは触れないので、各自調べてください。

git clone https://github.com/seiyu-nico/docker-php-dev.git directory
cd directory
docker-compose up 

とりあえずgitクローンしてディレクトリ移動してdocker-compose upで実行してみてください。

今回利用したリポジトリ一覧

独り言・・・

  • イメージのサイズがでかいのどうにかしたい・・・

コメント