【Docker】Dockerコンテナに環境変数を設定完了するまでの流れについて
設定の必要性に気づいた経緯
開発を行う中で、ターミナルにエラーが表示された。
SocketError - getaddrinfo: Name or service not known:
app/models/api_suggest.rb:19:insuggest'
search'
app/controllers/suggests_controller.rb:6:in
SocketError...??
まずソケットがわからない、、
こちらを参考にさせて頂いてなんとなく理解、、
ソケット(英:socket)とは
プログラムとネットワークをつなげる接続口のこと
「SocketError - getaddrinfo: Name or service not known」
「ネットワーク接続口のネームかサービスを知らないです。」
と言われている、、?
ここで、ローカルで設定した外部APIのキーとURIの環境変数をDockerには登録していないことに気づく。
登録までの流れ
$ open ~/.bash_profile
$ open ~/.bash_profile
で、その環境変数を確認
export API_KEY='〇〇'
export API_URI='https://〇〇〜〜〜.herokuapp.com/api/suggests'
env_file.envを作成
API_KEY
API_URI
プロジェクトルートディレクトリの直下に作成し、環境変数名を書く。
docker-compose.ymlにenv_fileを読み込ませる記述を追加
services:
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
networks:
- default
#≀≀≀
アプリ名:
build:
context: .
dockerfile: Dockerfile.dev
ports:
- '3000:3000'
#≀≀≀
env_file: env_file.env #←ここ
環境変数が登録、読み込みされているかの確認。
ターミナルで
$ docker-compose run --rm アプリ名 env
とすると登録のある環境変数がずらっと表示される。
終わりに。
転職の為、未経験の状態からRailsを学習しております。正しい知識を着実に身に着け、実力のあるエンジニアになりたいと考えています。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
今現在、初心者だからといって言い訳はできないですが、投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございます。
Author And Source
この問題について(【Docker】Dockerコンテナに環境変数を設定完了するまでの流れについて), 我々は、より多くの情報をここで見つけました https://qiita.com/waniwaninowani/items/e442be1a331cabff4f08著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .