RailsでBasic認証・Dockerで環境変数を設定
Basic認証の処理を書く
class ApplicationController < ActionController::Base before_action :basic_auth protect_from_forgery with: :exception private def basic_auth authenticate_or_request_with_http_basic do |username, password| username == ENV.fetch('BASIC_AUTH_USER') && password == ENV.fetch('BASIC_AUTH_PASSWORD') end end end
ENV.fetch('BASIC_AUTH_USER')
ENV.fetch('BASIC_AUTH_PASSWORD')
で環境変数で設定しているものを参照する
環境変数の設定
環境変数とは
パスワードや秘密鍵など、Githubに載せて行きたくない・漏らしてはいけない情報を、サーバーなどのOSに保存しておき、 それをアプリケーションに渡す仕組み
dockerで環境変数を設定する方法
設定したい環境変数をまとめたファイルを作成
BASIC_AUTH_USER=user BASIC_AUTH_PASSWORD=password
docker composeファイルに設定を追記
version: '3' services: app: container_name: "app" build: context: . dockerfile: Dockerfile command: bundle exec rails s -p 3000 -b '0.0.0.0' ports: - 3000:3000 external_links: - db volumes: - .:/app # 追記 env_file: - .env