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 | 必要 | 必要 |