0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM Cloud Code Engineを用いてWebアプリケーションをデプロイしてみる ~フロントエンド編(完成)/ つまずき集~

0
Last updated at Posted at 2025-12-26

本記事は IBM Cloud Code Engineを用いてWebアプリケーションをデプロイしてみる ~バックエンド編~ の続編となります。
概要編、事前準備編、バックエンド編をまだご覧になっていない方は、以下の記事をご参照ください。

記事一覧

はじめに

いよいよ本記事も最後となりました。
本記事では社内研修で作成したAI Chat Bot のフロントエンド側のアプリケーションをIBM Cloud Code Engine を使用してビルド・デプロイし、フロントエンドとバックエンドの連携をしていきます。

フロントエンドのデプロイはバックエンドと同様の手順で作成します。本記事ではバックエンド編と異なる点のみを記載します。

IBM Cloud Code Engine を使用してフロントエンドのビルド・デプロイ

バックエンド編との変更点

バックエンド編の番号 項目
1-3 名前 tdc-rehorenso-frontend
1-6 コンテキスト・レジストリ frontend/
1-8 リポジトリー(イメージ名) rep-rehorenso-frontend
1-12 ドメイン・マッピング パブリック
1-13 環境変数 下記に記載

環境変数

環境変数は以下のように設定します。

項目
定義タイプ configmap内のキー参照
名前のオーバーライド 空欄
Configmap backend-api-url
キー BACKEND_API_URL

image.png

Code Engineの作成!(フロントエンド)

次のような画面になっていればビルド成功です。

image.png

動作の確認方法

デプロイしたtdc-rehorenso-frontendtdc-rehorenso-backendが動作するかの確認を行います。

  1. 作成したtdc-rehorenso-frontendのドメインマッピングを選択
  2. システム・ドメイン・マッピングのパブリックの欄のURLをコピー
  3. アドレスバーにコピーしたURLを入力

image.png

うまくデプロイできていると

うまくデプロイできていると、以下のようにアクセスすることができ、レスポンスも返ってきます!
また、パブリックに公開しているため、URLを入力することで自身のスマートフォンからもアクセスが可能です。

お疲れ様でした!

image.png
image.png

筆者がつまずいた点

ここでは、Code Engineを使用してデプロイする際に筆者がつまずいた点について解説していきます。
初めてCode Engineを操作する人にも起きる可能性があるため、備忘録としてここに残します。

1. アプリが起動しない(リビジョン失敗と出る)

ビルドは成功したが、添付図のようにリビジョン失敗とでてアプリを起動することができない。

image.png

原因

フロントエンドで使用しているポート番号が違う。

以下のようにポートが違うと出ていたため、調べてみたところ

image.png

イメージ始動オプションのリスニング・ポートが8080になっているのに対し、ソースコードでは3000と記載していたため、リビジョンができていなかったと判明。
image.png

間違えた箇所(app.js)
// サーバーの起動
app.listen(3000, () => {
    console.log('ポート3000でリクエスト待受中...'); // サーバー起動時のログ
});

解決策

app.jsDockerfileのポート番号を8080に修正し、再度Code Engineアプリケーションを作成することで起動することができました。

image.png

2. ビルドは成功したが、フロントエンドとバックエンドの連携がうまくいかない

frontendbackend共にデプロイ完了し、起動することができたが、バックエンド側からの返答が返ってこない
image.png

原因

バックエンドのエンドポイントがhttp://localhost:5000になっていた。

バックエンドのインスタンスを確認したところ、フロントエンド側でリクエストを送信しても、インスタンスがアクティブにならなかったため、リクエストがうまく送信されていないと判明。

image.png

また、ソースコードを確認すると、バックエンドに送るリクエストがhttp://localhost:5000となっていたため、正しくリクエストが送信されていないことが分かりました。

間違えている個所(main.js)
try {
    const response = await fetch("http://localhost:5000/api/generate", {

解決策

http://localhost:5000を環境変数BACKEND-API-URLに変更。
また、tdc-rehorenso-backendからプライベートのシステム・ドメイン・マッピングのURLを取得し、configmapに登録、tdc-rehorenso-fronrendの環境変数に設定することで解決しました。

修正(main.js)
 try {
    const response = await fetch(BACKEND-API-URL, {

プライベートのシステム・ドメイン・マッピングのURLを取得
image.png

configmapに登録
image.png

まとめ

今回はIBM Cloud Code Engineを使用してWebアプリケーションのデプロイを行いました。
初めてCode Engineを使用してWebアプリケーションのデプロイを行いましたが、実際に手を動かすことでクラウドに関する知識がより一層理解できるようになりました。

今回の記事では初心者の人にも分かるように手順を詳細に記載し、実装の際に出現する単語についても補足の説明をいたしました。クラウドを使用してデプロイをしてみたいという方は、ぜひ今回の記事を参考にしてWebアプリケーションのデプロイに挑戦してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?