質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

1391閲覧

DockerでのCredentials.ymlの読み込みについて

NakaShun_1129

総合スコア20

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/03/11 06:26

編集2022/01/12 10:55

現在、EC2にdockerを導入しています.
db:createまでは問題なかったのですが、

docker-compose run app rails db:migrate

上記のコマンド実行時に下記のエラーが出ています。

NoMethodError: undefined method `[]' for nil:NilClass

該当箇所を調べてみるとTwitter認証で使用する環境変数をCredentials.ymlから参照している箇所でした。

EDITOR=vim bin/rails credentials:edit

上記のコマンドでCredentials.ymlの中身を確認すると問題なく環境変数がありました。

何かエラーの原因の分かる方いませんでしょうか。

下に参考ファイルを貼っておきます。

Dockerfile FROM ruby:2.5.1 RUN apt-get update && \ apt-get install -y mysql-client nodejs vim --no-install-recommends && \ rm -rf /var/lib/apt/lists/* RUN mkdir /myproject WORKDIR /myproject ADD Gemfile /myproject/Gemfile ADD Gemfile.lock /myproject/Gemfile.lock RUN gem install bundler RUN bundle install ADD . /myproject
docker-compose version: '2' services: db: image: mysql:5.6 volumes: - mysql-data:/var/lib/mysql #データの永続化のために必要 ports: - "4306:3306" #両方3306でもok。DBをsequel proで可視化したい為 environment: MYSQL_ALLOW_EMPTY_PASSWORD: password app: tty: true #コンテナ上でbinding.pryするために必要 stdin_open: true #コンテナ上でbinding.pryするために必要 build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/myproject #ローカルのディレクトリをコンテナ上にマウント - bundle:/usr/local/bundle #bundle installした後buildし直さなくてよくなる ports: - "3000:3000" links: - db volumes: mysql-data: bundle: #bundle installした後buildし直さなくてよくなる
database.yml default: &default adapter: mysql2 # encoding: utf8 encoding: utf8mb4 charset: utf8mb4 # <= 追加 collation: utf8mb4_general_ci # <= 追加 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: password host: db #docker-compose.ymlのservice名を記載

下記については解決済
そこでCredentials.ymlの中身を確認しようと”EDITOR=vim bin/rails credentials:edit”のコマンドを打つと、
cannot load such file -- bundler (LoadError)
のエラーが出てしまいます。
bundlerのバージョンに問題があるのかと思い確認すると、
ローカル環境、本番環境共にbundler (2.1.4, 2.0.2)で一致していました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問