Webサイトの運営や個人情報・コンテンツを扱うWebサービスを作る上で、https(SSL)対応は今や欠かせません。
というわけで、Dockerで気軽に適用できないか試行錯誤したところ、以下の方法でうまく行きました。 HTTPS通信を受けるNginxコンテナを新たに追加します。
ベース
変更点
docker-compose.yml
nginx-ssl
とvolumes
を追加
version: "2" services: uwsgi: build: ./app volumes: - ./app:/var/www/ ports: - "3031:3031" environment: TZ: "Asia/Tokyo" nginx: build: ./nginx volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf links: - uwsgi ports: - "80:80" environment: TZ: "Asia/Tokyo" # 以下を追加する nginx-ssl: image: valian/docker-nginx-auto-ssl restart: on-failure ports: - 443:443 volumes: - ssl_data:/etc/resty-auto-ssl environment: ALLOWED_DOMAINS: 'yourdomain.com' SITES: 'yourdomain.com=nginx:80' volumes: ssl_data:
Makefile
NAME=flaskapp run: docker-compose build docker-compose up -d stop: docker stop ${NAME}_uwsgi_1 ${NAME}_nginx_1 ${NAME}_nginx-ssl_1 docker rm ${NAME}_uwsgi_1 ${NAME}_nginx_1 ${NAME}_nginx-ssl_1