CLIだけでCode EngineWebアプリの作成をしてみるメモ


GitHub Codespaces上でCode Engineを使って開発をしてみます。

いつも手順忘れる..

## 1. CLIツールの準備

### IBM CloudのCLIをインストール

通常のGitHub CodespacesだとLinux指定になります。

```bash
$ curl -fsSL https://clis.cloud.ibm.com/install/linux | sh
```

これでOKです。

### Code Engineのプラグインインストール

```bash
$ ibmcloud plugin install code-engine
```

確認してみます。

```bash
$ ibmcloud plugin list

ibmcloud plugin list
Listing installed plug-ins...

Plugin Name       Version   Status   Private endpoints supported
code-engine[ce]   1.48.0             true
```

インストールできています。

### IBM CloudにCLIでログイン

IBM Cloudの管理画面に記載されているワンタイムパスを使いつつログイン

```bash
$ ibmcloud login -a https://cloud.ibm.com -u passcode -p XXXXXXXXX
```

色々出てくるとけどエンターで進める。

## 2. アプリ作成前の設定

アプリケーションを作る前に`リージョン -> リソースグループ -> プロジェクト`の順で設定が必要です。

### リージョン指定

このまま進めるとリージョン指定で怒られるのでリージョン指定

```bash
$ ibmcloud target -r jp-tok
```

東京リージョンが`jp-tok`

### リソースグループ指定

このまま進めるとリソースグループ指定で怒られるので指定します。

まずはリソースグループ一覧を調べます。

```bash
$ ibmcloud resource groups
```

Defaultというグループが存在したので指定します。

```bash
$ ibmcloud target -g Default
```

### プロジェクトの指定

一覧を確認

```bash
$ ibmcloud ce project list
```

確認したところ特に既存プロジェクトがなさそうだったのでプロジェクト作成します。`n0bisuke_project`というプロジェクトを作成します。

```bash
$ ibmcloud ce project create --name n0bisuke_project
```

プロジェクトの選択をします。

```bash
$ ibmcloud ce project select --name n0bsuke_project

Selecting project 'n0bisuke_project'...
OK
```

なんとなくcdコマンドでフォルダ内に移動したようなイメージです。

## 3. アプリケーション作成

いよいよアプリ作成です。

### Expressサーバーを作る

`nobisuke_app`というフォルダを作って

```bash
$ mkdir nobisuke_app
$ cd nobisuke_app
```

expressのインストールをします。

https://github.com/expressjs/express/tree/4.18.2

```bash
$ npm init -y
$ npm i express
```

`nobisuke_app`フォルダ内に`app.js`ファイルを作成して以下を記述。

```app.js
const express = require('express')
const app = express()

app.get('/', function (req, res) {
  res.send('Hello World')
})

app.listen(3000) 
```

これでOKです。

### デプロイ

デプロイしていきます。ちなみに... 

```
FAILED
An application name must consist of lower case alphanumeric characters, '-' and must start with an alphabetic character and end with an alphanumeric character.
```

> アプリケーション名は小文字の英数字と'-'で構成され、英数字で始まり英数字で終わる必要があります。

として怒られるので`n0bisuke_web`みたいなのは使えず`nobisuke-web`としました。

```bash
$ ibmcloud ce application create --name nobisuke-web --build-source .
```

これでデプロイがスタートします。

```
・・・

Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n nobisuke-web-run-231117-xxxxxxxxx' to check the build run status.
Waiting for application 'nobisuke-web' to become ready.
Step 3 of 3 [============================>] 98.00%
```

（98%からなかなか進まないので管理画面みてみたら頑張ってる風だった。）

> ![スクリーンショット 2023-11-17 15.23.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/1eb56a22-8f00-3fa9-618a-1f2cfd3bdd51.png "スクリーンショット 2023-11-17 15.23.44.png")

完了するとURLが発行されてWebサイトにアクセスできます。

こちらを参照: https://qiita.com/n0bisuke/items/b6645cc6c7709e030abc#%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E6%88%90%E3%81%A8%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4


## 参考

https://qiita.com/n0bisuke/items/b6645cc6c7709e030abc
https://qiita.com/n0bisuke/items/c6361cfef84ca15a407e