概要
Rails7のローカル開発環境をhttpsで接続させる方法について調べたのでメモとして記載
調べるといくつか方法はあるが、今回はhttps-portal
を使ってアクセスできるようにしてみた
以下の記事をなぞりつつ、途中でつまづいた部分を記録
https://zenn.dev/dragonarrow/articles/1f3c34e31d0acc
前提
- local環境のdockerでRails7が動く
local環境
- M1 Mac
- OS:Monterey
流れ
/etc/hostsにドメインを追加
local環境で/etc/hosts
ファイルに以下を追加
127.0.0.1 devsite.local
docker-compose.ymlにhttps-portalを追加
environmentのDOMAINSにhostsで指定したものと同じものを指定
docker-compose.yml
:
:
https-portal:
image: steveltn/https-portal:1
ports:
- '80:80'
- '443:443'
links:
- web
restart: always
environment:
DOMAINS: 'devsite.local -> http://web:3000'
STAGE: 'local'
volumes:
- ./https-portal:/var/lib/https-portal
config/environments/development.rb
許可するホストにDOMAINSにhostsで指定したものと同じものを指定
:
:
config.hosts << "devsite.local"
docker-compose buildとdocker-compose up -d
ビルドしてコンテナを起動させる
docker-compose build
docker-compose up -d
以下のエラーが出た場合
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:80 -> 0.0.0.0:0: listen tcp 0.0.0.0:80: bind: address already in use
localで既にPort80が利用されているので、開発中は一時的に停止させるようにする
- portの状況確認
$ sudo lsof -i -P | grep "LISTEN"
httpd 138 root 4u IPv6 0x6e905bbde2bd865d 0t0 TCP *:80 (LISTEN)
httpd 401 _www 4u IPv6 0x6e905bbde2bd865d 0t0 TCP *:80 (LISTEN)
:
:
- localで動いているapacheの一時停止
$ sudo apachectl stop
- 再度コンテナを起動させてみる
docker-compose up -d
httpsでアクセス
https://devsite.local/
でアクセスし、railsの画面が表示されるかを確認