Liquid、JavaScriptなどに関する質問
お世話になっております。
現在ローカルで動作しているアプリをherokuを使用してデプロイしようとしています。
しかしherokuを用いてデプロイした際にエラーが発生しており解決方法もわからないため教えていただきたいです。
現在出ているエラーは下の画像のような状態です。
作成しているアプリですが、nodeのテンプレートを使用して作成しておりtheme app extensionsを使用して拡張機能を追加しました。ruby environment not found と表示されているのですがアプリにはrubyを使用した覚えもありません。またshopifyのcliをインストールする際にRuby+Devkit 3.0をインストールしておりコマンドにて ruby -v 実行するとバージョンが表示されておりどこが問題になっているのかがわかりません。
herokuの設定が悪いのかと思い、ビルドパックにheroku/rubyを追加して環境変数もすべて設定したのですが何も変わらなかったです。
公式のzennの記事を参考におこなっていますがうまくいかなかったです。
解決方法やherokuでのデプロイ経験があるかたご教授いただければ幸いです。よろしくお願いいたします。
解決済! ベストソリューションを見る。
成功
アプリへの依存関係を追加ではなく、nodeとruby、bundlerがインストールされている環境でビルド、デプロイが必要です。
参照されたリンクの感じで基本的には問題ないと思います。
私はHerokuは使ってないのですが、ruby:3.1-bullseyeをベースとしたイメージにnodeをインストールした環境でビルドとデプロイができることを確認できています。
参考までにDockerfileの書き方を記載します。
FROM ruby:3.1-bullseye
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - &&\
apt-get install -y nodejs
WORKDIR /app
COPY . .
RUN npm ci && npm run build
nodeのバージョンやビルドのコマンドなどはご自身のプロジェクトに合わせて適宜読み替えてください。
Sen25さん、はじめまして。
Tsunの小笠原と申します。
解決の糸口になりそうな点を記載しますので、ご確認ください。
まず、エラーを見たところRubyが見つからない問題であることがわかります。
アプリにRubyを使用していなくても、Shopify CLIでdeployを実行した際にtheme check (theme app extensionsの実装がある場合のみ)が行われます。
そのtheme checkがRubyに依存しているため、theme app extensionsのデプロイの際にはRubyとBundlerが必要です。
https://shopify.dev/apps/tools/cli/ci-cd#additional-project-dependencies
> herokuの設定が悪いのかと思い、ビルドパックにheroku/rubyを追加して環境変数もすべて設定したのですが何も変わらなかったです。
念の為、再度Heroku上でRubyが動いているか、Rubyのバージョン等を確認してみてください。
小笠原さんご回答いただきありがとうございます。
回答いただいた内容とリンクでrubyとbundleの依存関係を追加する必要があるのは理解できました。しかし現時点ではどのようにアプリへrubyとbundleの依存関係を追加するのかがわかりません。
現時点で試したことは
https://alpacat.com/blog/docker-multi-stage-build
docker fileをもとにデプロイしていると思いますので上記リンクをもとにdockerfileへrubyとbundleを持ったnodeイメージができるよう記述しました。しかし同様にエラーが表示され何も変わりませんでした。(記述方法がまちがっているかもしれませんが)
共有いただいたリンクの中ではパイプラインに統合するという項目がございましたが別の依存関係を追加する場合は必ず必要になりますでしょうか?
依存関係を追加する記述する方法を教えていただけますでしょうか。
成功
アプリへの依存関係を追加ではなく、nodeとruby、bundlerがインストールされている環境でビルド、デプロイが必要です。
参照されたリンクの感じで基本的には問題ないと思います。
私はHerokuは使ってないのですが、ruby:3.1-bullseyeをベースとしたイメージにnodeをインストールした環境でビルドとデプロイができることを確認できています。
参考までにDockerfileの書き方を記載します。
FROM ruby:3.1-bullseye
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - &&\
apt-get install -y nodejs
WORKDIR /app
COPY . .
RUN npm ci && npm run build
nodeのバージョンやビルドのコマンドなどはご自身のプロジェクトに合わせて適宜読み替えてください。
ご返信いただきありがとうございます。
dockerfileの記述参考にしながら記述しましたらrubyのエラーは消えました。やはり自分の記述に問題がありました。ご回答いただきありがとうございました。
Hello @sen25,
Now I tried to deploy nodejs app with theme app extension to Heroku and I have the same error.
My Dockerfile is:
FROM node:18-alpine
ARG SHOPIFY_API_KEY
ENV SHOPIFY_API_KEY=$SHOPIFY_API_KEY
EXPOSE 8081
WORKDIR /app
COPY web .
RUN npm install
RUN cd frontend && npm install && npm run build
CMD ["npm", "run", "serve"]
FROM ruby:3.1-bullseye
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - &&\
apt-get install -y nodejs
WORKDIR /app
COPY . .
RUN npm ci && npm run build
But it still error. Can you help me please?
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024