LoginSignup
0
0

More than 3 years have passed since last update.

【Docker】Dockerコンテナに環境変数を設定完了するまでの流れについて

Posted at

設定の必要性に気づいた経緯

開発を行う中で、ターミナルにエラーが表示された。

SocketError - getaddrinfo: Name or service not known:
app/models/api_suggest.rb:19:in suggest'
app/controllers/suggests_controller.rb:6:in
search'

SocketError...??
まずソケットがわからない、、
こちらを参考にさせて頂いてなんとなく理解、、

ソケット(英:socket)とは

プログラムとネットワークをつなげる接続口のこと

「SocketError - getaddrinfo: Name or service not known」
「ネットワーク接続口のネームかサービスを知らないです。」
と言われている、、?

ここで、ローカルで設定した外部APIのキーとURIの環境変数をDockerには登録していないことに気づく。

登録までの流れ

$ open ~/.bash_profile

で、その環境変数を確認

export API_KEY='〇〇'
export API_URI='https://〇〇〜〜〜.herokuapp.com/api/suggests'

env_file.envを作成

env_file.env
API_KEY
API_URI

プロジェクトルートディレクトリの直下に作成し、環境変数名を書く。

docker-compose.ymlにenv_fileを読み込ませる記述を追加

docker-compose.yml
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を学習しております。正しい知識を着実に身に着け、実力のあるエンジニアになりたいと考えています。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
今現在、初心者だからといって言い訳はできないですが、投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0