Docker https-portal

https-portalとは

Let’s Encryptサービスが稼働しているDockerコンテナ
内部で証明書の発行や自動更新まで勝手にやってくれている
docker-composeでドメイン名等を指定して利用する

Docker設定

docker-compose.yml

version: '3'

services:
 study-php:
  container_name: study-php
  build: ./docker/php
  volumes:
   - ./src/php:/var/www/html
  environment:
   TZ: Asia/Tokyo
  restart: always

 study-portal:
  container_name: study-portal
  image: steveltn/https-portal:1
  ports:
   - '80:80'
   - '443:443'
  restart: always
  environment:
   DOMAINS: 'ホスト名 -> http://コンテナ名:コンテナport番号'
   
   DOMAINS: 'localhost -> http://study-nginx:8000'
   nginx参照
   
   STAGE: 'local'
   STAGE: 'staging'
   STAGE: 'production'
   STAGE参照

   # FORCE_RENEW: 'true'

 study-nginx:
  container_name: study-nginx
  build: ./docker/nginx
  ports:
   - 8000:8000
  volumes:
   - ./src/php:/var/www/html
  depends_on:
   - study-php

nginx

※/etc/nginx/conf.d/default.conf
server {

 https-portalコンテナ設定に対応
 DOMAINS: 'ホスト名 -> http://コンテナ名:8000'
 listen 8000;

 https-portalコンテナ設定に対応
 DOMAINS: 'localhost -> http://コンテナ名:コンテナport番号'
 server_name localhost;

 
}

https-portal設定

DOMAINS

ホストとコンテナの紐付けを行う

ホスト名はnginxコンテナの〜.confで設定されたサーバー名称
nginx参照

STAGE:localの場合は実ドメインである必要もない
STAGE参照


DOMAINS: 'localhost -> http://study-nginx:8000'
ブラウザに
https://localhost
を入力した場合にhttps-portalは
study-nginxコンテナのサーバー:localhost:8000に転送する

バーチャルホスト利用時
DOMAINS: 'localhost1 -> http://study-nginx:8000, localhost2 -> http://study-nginx:8000'

STAGE
設定 ドメイン取得 サーバ 備考
local 不要 不要
staging 必要 不要
production 必要 必要

Follow me!

前の記事

JavaScript WebStorage

次の記事

WordPress Basic認証