【初心者向け】クラウド完結！Web開発環境クッキングレシピ[ver 2019.11]-その３

[【初心者向け】クラウド完結！Web開発環境クッキングレシピ[ver 2019.11]-その２、の続きです](https://qiita.com/yellow-strelitzia/items/451965b329e7efc563ee)

####手順.8 Heroku用ファイルを追加して、リポジトリを更新
Web開発環境クッキングレシピ[ver 2019.11]-その２、の継続で、gitpodへログインし、.heroku.dockerfileとheroku.ymlファイルを追加します

```.heroku.dockerfile
FROM node:12.13
WORKDIR /app
COPY . /app
RUN npm i
CMD npm start
```

```heroku.yml
build:
  docker:
    web: .heroku.dockerfile
```

手順6と同じように、リポジトリを更新する作業をしましょう。

####手順.9 Herokuアカウントを作成する
Herokuのサインアップページを開き、アカウントを作成します。Primary development languageはNode.jsとし、必要項目を入力して（Companyは任意）Create Free Accountをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/2f0eaeae-6fb9-ba9b-a940-7e7843b7a6fd.png)

Herokuより、メールが飛んで来るので、メール内のリンクをクリックして、パスワード設定画面を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/025c9efe-4413-3194-e297-9063a970b0b9.png)
下記画面になるので、進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/927602b1-e400-d763-6092-7ed98bcf2208.png)

####手順.10 Herokuアプリケーションを作成する
下記画面で Create new appのボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/94bf5cb1-4e39-9807-bd66-96b7c8df8c5a.png)
App nameのところに、名前を入力します。この名前はHerokuのサービスで一意の名前でなくてはいけないので、ほかのユーザーと重複しないものを考えて命名します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/bb32b679-2b43-6103-9708-ddb5ce9b91d6.png)
次の画面で、Deployment methodを GitHub に選択しなおします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/9b78cc55-834f-904f-af19-5288db5a64e6.png)
選択すると、下に Connect to GitHub　のボタンが表示されるので、クリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/47469d9d-4b41-9883-b251-20a6faa4aa43.png)
以下のようなポップアップが表示されるので、Authorize heroku をクリックし、次のポップアップでGitHubアカウントのパスワードを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/6c511fee-a070-57cc-e624-306bd3408758.png)
Connect to GitHubの場所にリポジトリ名を選択する場所が表示されますので、herokudevとしてSearchボタンを押し、Connectのボタンをクリックして、HerokuとGitHubリポジトリを接続します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/ecedbbe0-39b6-395c-2bcd-d4ac5e352576.png)
接続が完了するとページ下部にAutomoatic DeployとManual deployが表示されるので、Manual deploy の場所にあるDeployBranchを押してデプロイを実行してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/561aff93-15a4-3013-c4ed-77d86580671c.png)
デプロイが成功すると、Your app was successfully deployedと表示され、下にViewの
ボタンが表示されるので、クリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/9cc031db-a87b-0c43-5767-bd6a8eed31a0.png)
Hello Worldページが表示されるかと思います
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/1632b5a0-baf2-2887-9333-5cb9e497435f.png)

####手順.11 Herokuの実行スタックをContainerへ変更
手順10でのHeroku のサーバー環境はHeroku-18 Stackというものになっているので、これをContainerへ変更します
Gitpodへログイン、ワークスペースを開き、ページ下部のTerminalのところに移動してコマンドを入力していきます

```
heroku login --interactive
```
Emailとパスワードを促されますので、Heroku へのログイン情報を入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/799e76d8-05c3-d798-3092-a705dfd021a3.png)

heroku list と入力するとあなたの作成したアプリケーション名が表示されるので、記憶し、heroku stack:set container -a あなたのアプリケーション名と入力します

```
heroku list
heroku stack:set container -a *****
```

念のため、最後にheroku logout でログアウトしておきましょう。

####手順.12 Herokuの再デプロイ
手順10のManual deploy、DeployBranchを押してデプロイを再実行してみます。

Dockerコンテナを構築しているログが表示されている様子がわかります。
デプロイが成功したら再度Viewをクリックして、アプリケーションが動作していることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/530472/18272c64-20ed-5b13-5ecd-c969efa4f84f.png)

Herokuの設定にはAutomatic deploysもありますので、こちらを設定すれば、Gitpodでプログラムソースコード編集をし、コミットをすれば自動でHerokuがDeployを実行するかと思いますが、こちらの設定は省略します。

####終わりに（お味はいかが？）
いくつかのサービスの無料アカウントを駆使して、Webブラウザのみで開発から実行環境を整える方法の１つとして、手順化することができました。環境への依存度が低いこの方法でプログラミング学習や実験などに活用いただけたらと思います。