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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 6

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

Amazon EC2

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

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

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

Q&A

0回答

889閲覧

EC2 本番環境にCSSを適応させユーザーアイコンを丸くしたい。

Pro01x19

総合スコア17

Ruby on Rails 6

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

Amazon EC2

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

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2021/01/06 03:46

編集2021/01/06 11:40

前提・実現したいこと

私は現在SNS風のwebアプリケーションを作成しております。
先日EC2上にデプロイし、アプリの動作確認を行っていた際、異変に気付きました。

ユーザーにはアイコン画像を設定できるようにし、そのアイコン画像は丸型に切り取るようなCSSを記述しておりました。
しかし、本番環境にはそのような変化はなく、アイコン画像がそのまま添付されている形になっておりました。

Herokuにデプロイしてある物はしっかりとCSSの記述が適応しており、開発環境もまた同じです。

エラーメッセージ

rake assets:clobber assets:precompile コマンドにて

warning Integrity check: Flags don't match error Integrity check failed error Found 1 errors. ======================================== Your Yarn packages are out of date! Please run `yarn install --check-files` to update. ======================================== To disable this check, please change `check_yarn_integrity` to `false` in your webpacker config file (config/webpacker.yml). yarn check v1.22.5 info Visit https://yarnpkg.com/en/docs/cli/check for documentation about this command.

と出ました。

メッセージにある2件を試そうと思いました。

yarn install --check-files を打ち込むとコンソールのようなものが立ち上がりました。
その後のアクションが分からず一度閉じてしまいました。

yarn upgradeを打ち込むと正常に動きました。

その後unicornをkillし、自動デプロイしたところ変化がありませんでした。

該当のソースコード

assets/stylesheets/user.sccs .icon_image { width: 100px; height: 100px; border-radius: 100px; object-fit: cover; border:3px solid #ff006f }
views/devise/registrations <div class="sinupPage"> <div class="titleArea"> <h1>アカウントを新規作成</h1> </div> <div class='container'> <%= form_with scope: resource, as: resource_name, url: registration_path(resource_name), html: { class: "mt-5, signupForm" }, local: true do |f| %> <%= devise_error_messages! %> <div class="form-group"> <%= f.label :name %> <%= f.text_field :name, class: "form-control", placeholder: "名前を入力してください" %> </div> <div class="form-group"> <%= f.label :email %> <%= f.email_field :email, class: "form-control", placeholder: "emailを入力してください" ,autocomplete: "email" %> </div> <div class="form-group"> <%= f.label :password %> <% if @minimum_password_length %> <em>(<%= @minimum_password_length %>文字以上入力してください)</em> <% end %><br /> <%= f.password_field :password, class: "form-control", placeholder:"パスワードを入力してください", autocomplete: "off" %> </div> <div class="form-group"> <%= f.label :profile %> <%= f.text_area :profile, class: "form-control", placeholder:"プロフィールを入力してください" %> </div> <div class="field"> <%= f.label :image %><br/> <%= f.file_field :image, class: "icon_image" %> </div> <div class="text-center"> <%= f.submit "アカウントを作成", class: "btn btn-outline-secondary" %> </div> <% end %> </div> </div>
config/deploy.rb # capistranoのバージョンを記載。固定のバージョンを利用し続け、バージョン変更によるトラブルを防止する lock "~> 3.14.1" # Capistranoのログの表示に利用する set :application, 'rank_top' # どのリポジトリからアプリをpullするかを指定する set :repo_url, 'git@github.com:akihiro0119/rank_top.git' # バージョンが変わっても共通で参照するディレクトリを指定 set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system', 'public/uploads') set :rbenv_type, :user set :rbenv_ruby, '2.7.2' # どの公開鍵を利用してデプロイするか set :ssh_options, auth_methods: ['publickey'], keys: ['~/.ssh/aono1x19.pem'] # プロセス番号を記載したファイルの場所 set :unicorn_pid, -> { "#{shared_path}/tmp/pids/unicorn.pid" } # Unicornの設定ファイルの場所 set :unicorn_config_path, -> { "#{current_path}/config/unicorn.rb" } set :keep_releases, 5 # デプロイ処理が終わった後、Unicornを再起動するための記述 after 'deploy:publishing', 'deploy:restart' namespace :deploy do task :restart do invoke 'unicorn:restart' end end
config/unicorn.rb #サーバ上でのアプリケーションコードが設置されているディレクトリを変数に入れておく app_path = File.expand_path('../../../', __FILE__) #アプリケーションサーバの性能を決定する worker_processes 1 #アプリケーションの設置されているディレクトリを指定 working_directory "#{app_path}/current" #Unicornの起動に必要なファイルの設置場所を指定 pid "#{app_path}/shared/tmp/pids/unicorn.pid" #ポート番号を指定 listen "#{app_path}/shared/tmp/sockets/unicorn.sock" #エラーのログを記録するファイルを指定 stderr_path "#{app_path}/shared/log/unicorn.stderr.log" #通常のログを記録するファイルを指定 stdout_path "#{app_path}/shared/log/unicorn.stdout.log" #Railsアプリケーションの応答を待つ上限時間を設定 timeout 60 #以下は応用的な設定なので説明は割愛 preload_app true GC.respond_to?(:copy_on_write_friendly=) && GC.copy_on_write_friendly = true check_client_connection false run_once = true before_fork do |server, worker| defined?(ActiveRecord::Base) && ActiveRecord::Base.connection.disconnect! if run_once run_once = false # prevent from firing again end old_pid = "#{server.config[:pid]}.oldbin" if File.exist?(old_pid) && server.pid != old_pid begin sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU Process.kill(sig, File.read(old_pid).to_i) rescue Errno::ENOENT, Errno::ESRCH => e logger.error e end end end after_fork do |_server, _worker| defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection end

###補足情報

本番環境の画像データはS3に
アイコン画像はcarrierwaveを使用しております。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/01/06 03:54

「Please run `yarn install --check-files` to update.」ってヒントが出ているのだから、試してみてどうでしたか?
Pro01x19

2021/01/06 04:01

確認した結果を記載していませんでした。 追記いたします。 結果としては yarn install --check-files を打ち込むとコンソールのようなものが立ち上がりました。 yarn upgradeを打ち込むと正常に動きました。 その後unicornをkillし、自動デプロイしたところ変化がありませんでした。
退会済みユーザー

退会済みユーザー

2021/01/06 04:06

続いて、反映されていない箇所のwebブラウザ上でのHTMLソースを見て、気づいたところはありますか?
yu_1985

2021/01/06 04:34

自動デプロイの過程にasset:precompileが含まれていますか?
Pro01x19

2021/01/06 04:44

@yu_1985さん質問ありがとうございます。 質問の意図と違う回答でしたら申し訳ございません。 自動デプロイする中で人間側が動作をする過程でasset:precompileが含まれるコマンドは打ち込んでいません。 自動デプロイしている際に流れる多数のコードの中にassetが含まれる物は optimize-css-assets-webpack-plugin@5.0.4 しかありませんでした。 require 'capistrano/rails/assets' というgemはインストールしておりますが、こちらではだめだったでしょうか...
yu_1985

2021/01/06 06:06

> 自動デプロイする中で人間側が動作をする過程でasset:precompileが含まれるコマンドは打ち込んでいません。 ちょっとよくわからないのですが、どのようなフローを「自動デプロイ」としていますか? 人間側がどうこうではなくてデプロイの中で必要になると思うのですが…。 yarn upgradeしたはいいものの、「rake assets:clobber assets:precompile コマンドを試す」をもう一度行っていないように見えるのと、それが必要になるのであればデプロイの中に組み込まなくてはならないはずです。
退会済みユーザー

退会済みユーザー

2021/01/06 06:19

スタイルシートが別ディレクトリにあったりすると、ファイルやディレクトリのアクセス権の都合で403 forbiddenってなることがあります。SELinuxのコンテキストも確認してみてください。
Pro01x19

2021/01/06 09:15

@yu_1985さん 申し訳ございません!EC2の仕組みを理解しきれないまま実装を進めてしまっています。 デプロイするための方法として データベースの起動を確認→unicornのmasterをkillする→ローカルで自動デプロイコマンドを打ち込む だと認識しておりました。 rake assets:clobber assets:precompile はどの時点で必要なのでしょうか?
Pro01x19

2021/01/06 09:17

@m6uさん 返信ありがとうございます! SELinnuxとコンテキストという単語を初めて見たため、これから勉強して参ります。 簡単な確認方法などあれば記載していただけるとありがたいです!
yu_1985

2021/01/06 11:07 編集

rake assets:clobber assets:precompil に相当するものがその「自動デプロイ」の過程で必要なのでは? あと、わざわざ手動でunicornをkillせずにデプロイの流れの中でkillすればいいのではないでしょうか 個人的には、デプロイを手動でkickしているにも関わらず自動デプロイと呼ぶのは違和感があります。
Pro01x19

2021/01/06 11:23

@yu_1985 rails assets:precompile RAILS_ENV=productionでしたら手動デプロイの際に行っておりました。 config/deploy.rbファイルと config/unicorn.rbファイルを記載しますので確認していただいてよろしいでしょうか...? この問題が解決しましたらデプロイの中に組み込む方法も学習したいと思います。 アドバイスありがとうございます!
yu_1985

2021/01/06 12:54

ちなみに、asset:precompileをすることによって今回の問題は解決しますか? yarn upgradeをしたあとにまだ試してないような気がするのですが…。
Pro01x19

2021/01/06 13:26

@yu_1985さん 勉強不足で申し訳ございません。 たった今行った手順を記載します。 疑問点、不可解な点がありましたら指摘していただけたら幸いです。 ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスと紐付けたElastic IP でEC2上にアクセス→ cd /var/www/アプリ名でアプリにアクセス→ yarn upgrade→ rake assets:precompile RAILS_ENV=production→ ps aux | grep unicorn→ kill masterの番号→ bundle exec cap production deploy としました。 結果改善に至らなかった形です。 冗長な部分があると思いますが、よろしくお願いします。
yu_1985

2021/01/06 13:33

流れはわかりましたが、それぞれのコマンドの実行結果はどうなりますか? あと、せっかくサーバ上でyarn upgradeとassets:precompileをしているのに、そのあとにまたローカルからデプロイしたら無駄になりませんか? 順番としては > ps aux | grep unicorn→ > kill masterの番号→ > bundle exec cap production deploy > cd /var/www/アプリ名でアプリにアクセス→ > yarn upgrade→ > rake assets:precompile RAILS_ENV=production→ の状態で結果を確認してほしいのですが…。
Pro01x19

2021/01/06 13:40

大変申し訳ございませんでした。。 yarn upgrade→ Done in 10.70s. rake assets:precompile RAILS_ENV=production→ Done in 4.04s. Everything's up-to-date. Nothing to do となっております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問