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

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

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

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

Ruby on Rails

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

Docker

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

439閲覧

【EC2・Docker・Rails】ec2上でdocker-composeを使用しrailsアプリを立ち上げるが No such file or directoryエラーが発生しcssが反映されない

homareendo

総合スコア9

docker-compose

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

Ruby on Rails

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

Docker

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2020/11/05 05:52

編集2020/11/05 22:01

前提・実現したいこと

ec2上でdocker-composeを使用しrailsアプリを立ち上げるが
No such file or directoryエラーが発生しcssが反映されない

行った手順

1 webコンテナ内にnode.js.yarnをインストール
2 以下コマンド実行

$docker-compose run web bundle exec rake assets:precompile RAILS_ENV=production

コマンド実行後の結果

I, [2020-11-05T04:26:10.531648 #1] INFO -- : Writing /myapp/public/assets/application-4122c59e9974a12cfc6eb9ab07c775381b1339358d7cf76ceeaae39bd007c680.js I, [2020-11-05T04:26:10.552228 #1] INFO -- : Writing /myapp/public/assets/application-4122c59e9974a12cfc6eb9ab07c775381b1339358d7cf76ceeaae39bd007c680.js.gz I, [2020-11-05T04:26:10.715500 #1] INFO -- : Writing /myapp/public/assets/application-d862790037b7672926579474fbe8292cf57ebaeafc19b449c4f615a87b4f7075.css I, [2020-11-05T04:26:10.716247 #1] INFO -- : Writing /myapp/public/assets/application-d862790037b7672926579474fbe8292cf57ebaeafc19b449c4f615a87b4f7075.css.gz

3 docker-compose up

エラーメッセージ

nginx_1 | 2020/11/05 04:29:21 [error] 7#7: *1 open() "/app/public/assets/application.self-14537b66cf3bc71446e497a541ef83b052cf0726bb340eac3f08b7e9bf0e9da3.css" failed (2: No such file or directory)

該当のソースコード

production.rb

Rails.application.configure do config.cache_classes = true config.eager_load = true config.consider_all_requests_local = false config.action_controller.perform_caching = true config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? config.assets.js_compressor = Uglifier.new(harmony: true) config.assets.compile = false config.active_storage.service = :local config.force_ssl = true config.log_level = :debug config.log_tags = [ :request_id ] config.action_mailer.perform_caching = false config.i18n.fallbacks = true config.active_support.deprecation = :notify config.log_formatter = ::Logger::Formatter.new if ENV["RAILS_LOG_TO_STDOUT"].present? logger = ActiveSupport::Logger.new(STDOUT) logger.formatter = config.log_formatter config.logger = ActiveSupport::TaggedLogging.new(logger) end # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false end

nignx.conf

upstream app { server unix:///myapp/tmp/sockets/puma.sock; } server { listen 80; server_name localhost; # TODO keepalive_timeout 5; # static files root /app/public; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; # static files if (-f $request_filename) { break; } if (-f $request_filename.html) { rewrite (.*) $1/index.html break; } if (-f $request_filename.html) { rewrite (.*) $1.html break; } if (!-f $request_filename) { proxy_pass http://app; break; } } location ~* .(ico|css|gif|jpe?g|png|js)(?[0-9]+)?$ { expires max; break; } }

試したこと

1 手動でコンパイルしたassetsのディレクトリとnginxが読み込んでいるディレクトリにズレがある?
(手動でのコンパイル)

/myapp/public/assets

(nginx)

/app/public/assets

→nginx.confのドキュメントルートを/myapp/public/assetsに変更するがエラー解消せず

** 2 コンパイル後public配下にファイルは存在するか?**

$ docker-compose run web ls public/assets Creating myapp_web_run ... done application-084b9ffa601b37201c9fcc7a0c2bee2f5ebaae4be90bda0769f2a0f6fcc09cdb.js application-084b9ffa601b37201c9fcc7a0c2bee2f5ebaae4be90bda0769f2a0f6fcc09cdb.js.gz application-14537b66cf3bc71446e497a541ef83b052cf0726bb340eac3f08b7e9bf0e9da3.css application-14537b66cf3bc71446e497a541ef83b052cf0726bb340eac3f08b7e9bf0e9da3.css.gz exclusions.css-53c044d871c4ea98718fd024dd4c23a10163dceb3e59d3e7e86056c92bda73b1.map

→public/assets配下にコンパイル後のcss,js存在を確認

補足情報(FW/ツールのバージョンなど)

Rails 5.2

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問