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

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

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

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

Ruby on Rails 6

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Docker

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

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

Q&A

解決済

1回答

1656閲覧

HerokuへRails+Dockerアプリをデプロイしたいが、Circleciの自動デプロイを行った時のみ、"webpack" not found.となり表示されない。

fujicho

総合スコア17

docker-compose

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

Ruby on Rails 6

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Docker

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

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

0グッド

0クリップ

投稿2021/11/07 02:38

ruby:2.6.5
rails:6.0.3

困っていること

Docker環境でRailsアプリを開発しCircleciを使ってHerokuへの自動デプロイを実装したが、自動デプロイの時のみ
app/views/layouts/user.html.erb内の
<%= javascript_pack_tag 'application', 'data-turbolinks-track': true %>
の読み込み中にerror Command "webpack" not found.が出てしまい、表示できません。
ターミナルにて

heroku container:push -a myapp heroku container:release web -a myapp

と手動でデプロイすると動作、表示されます。ローカルでも問題なく動作します。

circleci上ではビルド、テスト、デプロイ全てsuccess表示になり、デプロイ自体はできているようです。

このエラーは自動デプロイ時のみの為、.circleci/config.ymlの記述及びgitとの連携がおかしいのかと思い、検索し精査しましたが、解決致しません。

自動デプロイの際、.circleci/config.ymlにwebpackerに関する記述が何か必要なのでしょうか。
またどこかおかしいところがありますでしょうか。
分かる方よろしくお願い致します。

発生している問題・エラーメッセージ

error Command "webpack" not found. [Webpacker] Compiling... [Webpacker] Compilation failed: yarn run v1.22.15 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. error Command "webpack" not found. Completed 500 Internal Server Error in 11183ms (ActiveRecord: 14.7ms | Allocations: 9278) ActionView::Template::Error (Webpacker can't find application in /myapp/public/packs/manifest.json. Possible causes: 1. You want to set webpacker.yml value of compile to true for your environment unless you are using the `webpack -w` or the webpack-dev-server. 2. webpack has not yet re-run to reflect updates. 3. You have misconfigured Webpacker's config/webpacker.yml file. 4. Your webpack configuration is not creating a manifest. Your manifest contains: { } ): 5: <%= csrf_meta_tags %> 6: <%= csp_meta_tag %> 7: <meta name="viewport" content="width=device-width,initial-scale=1"> 8: <%= javascript_pack_tag 'application', 'data-turbolinks-track': true %> 9: <%= stylesheet_link_tag "user", media: "all", "data-turbolinks-track": "reload" %> 10: <%= javascript_pack_tag 'user', 'data-turbolinks-track': true %> 11: </head> app/views/layouts/user.html.erb:8

試したこと

エラー文に書いてあるwebpacker.ymlの設定等の見直しや、webpackerの再インストールなど行なったが解決しなかった。
(そもそも手動でのデプロイでは問題なく動くのであまり関係は無いと思われます。)
2つのjavascript_pack_tagを削除しデプロイすると問題なく動く。どちらか1つでも動きません。

該当のソースコード

.circleci/config.yml

yml

1version: 2.1 2orbs: 3 ruby: circleci/ruby@1.1.2 4 heroku: circleci/heroku@1.2.3 5 6jobs: 7 build: 8 docker: 9 - image: circleci/ruby:2.6.5 10 working_directory: ~/myapp 11 steps: 12 - checkout: 13 path: ~/myapp 14 - ruby/install-deps 15 16 test: 17 docker: 18 - image: circleci/ruby:2.6.5 19 - image: circleci/postgres:11.2-alpine 20 environment: 21 POSTGRES_ROOT_PASSWORD: "" 22 POSTGRES_DB: myapp_test 23 POSTGRES_USER: postgres 24 environment: 25 BUNDLE_JOBS: "3" 26 BUNDLE_RETRY: "3" 27 APP_DATABASE_HOST: "127.0.0.1" 28 RAILS_ENV: test 29 working_directory: ~/myapp 30 steps: 31 - checkout: 32 path: ~/myapp 33 - ruby/install-deps 34 - run: 35 name: Database setup 36 command: bundle exec rails db:migrate 37 - run: 38 name: test 39 command: bundle exec rspec 40 41 deploy: 42 docker: 43 - image: circleci/ruby:2.6.5 44 steps: 45 - checkout 46 - setup_remote_docker: 47 version: 19.03.13 48 - heroku/install 49 - run: 50 name: heroku login 51 command: heroku container:login 52 - run: 53 name: push docker image 54 command: heroku container:push web -a $myapp 55 - run: 56 name: release docker image 57 command: heroku container:release web -a $myapp 58 - run: 59 name: database setup 60 command: heroku run bundle exec rake db:migrate RAILS_ENV=production -a $myapp 61 62workflows: 63 version: 2 64 build_test_and_deploy: 65 jobs: 66 - build 67 - test: 68 requires: 69 - build 70 - deploy: 71 requires: 72 - test 73 filters: 74 branches: 75 only: master

dockerfile

1FROM ruby:2.6.5 2RUN apt-get update -qq && apt-get install -y nodejs postgresql-client 3RUN apt-get update && apt-get install -y curl apt-transport-https wget && \ 4curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \ 5echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \ 6apt-get update && apt-get install -y yarn 7RUN curl -sL https://deb.nodesource.com/setup_7.x | bash - && \ 8apt-get install nodejs 9RUN mkdir /myapp 10WORKDIR /mydapp 11COPY Gemfile /myapp/Gemfile 12COPY Gemfile.lock /myapp/Gemfile.lock 13RUN bundle install 14COPY . /myapp 15 16# Add a script to be executed every time the container starts. 17COPY entrypoint.sh /usr/bin/ 18RUN chmod +x /usr/bin/entrypoint.sh 19ENTRYPOINT ["entrypoint.sh"] 20EXPOSE 3000 21 22COPY start.sh /start.sh 23RUN chmod 744 /start.sh 24CMD [ "sh", "/start.sh" ] 25 26# Start the main process. 27CMD ["rails", "server", "-b", "0.0.0.0"]

Docker-compose.yml

yml

1version: '3' 2services: 3 db: 4 image: postgres:11.2-alpine 5 volumes: 6 - ./tmp/db:/var/lib/postgresql/data 7 web: 8 build: . 9 command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" 10 volumes: 11 - .:/my2ndapp 12 ports: 13 - "3000:3000" 14 depends_on: 15 - db

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

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

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

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

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

guest

回答1

0

自己解決

解決はしていませんが、少し進捗がありましたので別投稿で質問致します。

投稿2021/11/09 10:37

fujicho

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問