【heroku】アカウント作成〜アプリ配置まで試してみた

研究
OLYMPUS PEN E-PL9 (c)Maya
この記事は約7分で読めます。

来季のシーズンスローガン。面倒臭がらない
というわけで先般作ったNode.jsアプリをherokuに配置してみます。

Heroku | Sign up

Create apps, connect databases and add-on services, and collaborate on your apps, for free. A platform for apps, with app management & instant scaling, for development and production. Go from code to running app in minutes. Deploy, scale, and deliver your app to the world.

必要な事項を埋めて認証メールからアカウント登録を進めます。
よしなにアカウントが作れたらアプリを登録します。
参考サイトを見る限りではheroku cliをインストールすると捗るようなので従います…

[5分でできる] Node.jsでつくったWebアプリを無料でサーバー公開する方法(前編)|w0o0ps|note

Heroku(読み方: ヘロク)とかサーバーレスについてはもう知ってるよーん、って人は、[Heroku アカウントの作成] の章から読むといぃよ!(° ꈊ °)✧˖°オホッ! 拙者、昨日、数少ないトモダチのひとりである、UI/UX系デベロッパーから「KoaでつくったWebアプリを鯖の上で動かしたいんだけども、どこがおぬぬめですかー?やっぱりサーバーレス?」っていう質問を受けたんす。 …

$ brew tap heroku/brew && brew install heroku #←これ実行
Updating Homebrew...
Warning: You are using macOS 11.0.
We do not provide support for this released but not yet supported version.
You will encounter build failures with some formulae.

# --- 中略... ---

Error: Your Command Line Tools are too outdated.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you an update run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  

Sign in with your Apple ID

Sign in with your Apple ID

Error: Your CLT does not support macOS 11.0. It is either outdated or was modified. Please update your CLT or delete it if no updates are available.

叱られたw

Your CLT does not support macOS 11.0 (Big Sur Beta 7) · Issue #8797 · Homebrew/brew

Bug report Please note we will close your issue without comment if you delete, do not read or do not fill out the issue checklist below and provide ALL the requested information. If you repeatedly fail to use the issue template, we will …

You need to install the CLT for Xcode 12 beta 5. The Xcode 12 release doesn’t support macOS 12 and the CLT in Xcode is not the same as the normal Command Line Tools.

https://github.com/Homebrew/brew/issues/8797#issuecomment-698159666

Sign in with your Apple ID

Sign in with your Apple ID

本当かなぁ、とapple developerから検索して取得しインストール。
よし、進んだ。

[5分でできる] Node.jsでつくったWebアプリを無料でサーバー公開する方法(後編)|w0o0ps|note

前編記事からの続きっす。この記事では実際にHerokuを使って、無料でアプリをサーバー公開する方法をまとめてます。!(° ꈊ °)✧˖°オホッ! まだ前編をご覧になっていない方でお時間のある方は是非。 Heroku でアプリを公開するには、下図のように、Git (読み方: ギット)のリモートレポジトリが利用されます。 具体的には、3つのステップで、アプリを公開できるようになります。 □ 準備運動1: Heroku上にアプリの名前空間を作成 まず最初に、Heroku上でアプリの名前空間を作る必要があります。このアプリの名前空間が作成されるときに、Herokuデプロイに必要なHeroku用のGit のリモートレポジトリも同時に発行されます。 □ 準備運動2: ソースコードにHeroku用の設定を追加 □ 本番: Heroku用のGitリモートレポジトリにソースコードをPush □ ここまでのまとめ Heroku上でのアプリの名前空間を作成した時に取得した、Heroku用のGit のリモートレポジトリをソースコード内の Git 設定に追加します。さらに、Heroku上でのアプリ実行に必要なコマンドが設定された、Procfile (読み方: プロックファイル)を作成します。 設定が完了したら、Herokuのリモートレポジトリにソースコードを Git push。すると、Heroku上でビルドが実行され、ビルドが成功するとdyno (読み方: ダイノ) と呼ばれるサーバーにデプロイされて、アプリが公開されます。超便利。すげー簡単。 Herokuでアプリを公開するには、Gitを使う。 Herokuの中でアプリを起動するコマンドは、Procfileに書く。 アプリの公開は、Herokuに向けて、ソースコードを git push するだけ。超絶簡単。 では早速、Heroku上にアプリの名前空間を作っていきます。この段階では、ローカルのソースコードには何も変更は発生しません。あくまで、Herokuの中に、ソースコードをアップロードできるスペースが確保されるだけです。なので、なんか変なことが起こっても焦らなくてダイジョビ。 ちなみに、Heroku上での名前空間の作成はWebからも可能です。ただし、Webからの場合は、発行されるHerokuのGit のリモートレポジトリURLをあとから自分で設定する必要があります。一方、CLIでアプリの名前空間を作成した場合は、Git のリモートレポジトリの設定も同時に自動で行われるので、拙者はCLIで作成するほうをオヌヌメしておりやっす。 $ $ cd ~/Workspace/w0o0ps-2020 $ $ ls Dockerfile next.config.js providers translatableResourcesValue.json README.md package-lock.json query tsconfig.json components package.json server.js types next-env.d.ts pages test utils $ $ $ heroku apps You have no apps.

続きの資料に従いデプロイ…と、また叱られたw

Enumerating objects: 7192, done.
Counting objects: 100% (7192/7192), done.
Delta compression using up to 4 threads
Compressing objects: 100% (6807/6807), done.
Writing objects: 100% (7192/7192), 6.52 MiB | 1.72 MiB/s, done.
Total 7192 (delta 1379), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote:  !     No default language could be detected for this app.
remote:                         HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
remote:                         See https://devcenter.heroku.com/articles/buildpacks
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !       Push rejected to rocky-wildwood-40562.
remote: 
To https://git.heroku.com/rocky-wildwood-40562.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/rocky-wildwood-40562.git'

DockerでNode.jsアプリケーションを開発する (4) Herokuにデプロイする

前回 まで3回にわたってNode.js/Express.js, MySQLで簡単なアプリケーションを作成して来ましたが、今回は作ったものをいよいよインターネット上に公開する方法を見ていきたいと思います。 Webアプリケーション(もしくはWebサイト)をインターネット上に公開する方法はたくさんあります。 …

最初の資料を読み返す。もなかなかうまいこといかなかったものの、突如うまくいった。
多分以下のどちらかが要因。

  1. git push heroku master の前に git add . を走らせていなかった。
  2. package.json (プロジェクトのルートフォルダ)を作っていなかった。

さてさて接続だ〜、と試行するも、なんか叱られた。

多分これだ。

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var logger = require('morgan');
var app = express();

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var MySQLStore = require('express-mysql-session')(session);

var options = {
  host: 'mysql',
  port: 3306,
  user: 'root',
  password: 'password',
  database: 'todo'
};

var sessionStore = new MySQLStore(options);

app.js内でsessionをmysqlに持たせようとしてて→ホストが未解決でござると叱られているんだ。
本当はherokuのClearDBを使うのが定石なんですが、herokuのクレカ登録に某都銀デビットを使ったら、蹴られた(汗)AWSは大丈夫なんですが。
ならばと対策を考える。

  1. AWS RDSを使う → 東京リージョンの最安値でも0.026USD/h*24h*30days = 18.72USD = 1,943円
  2. Lightsailのデータベースを作る → これでも15USD/月=1,557円

    高 ぇ よ !
  3. いまこのサーバを置いてるLightsailの3.5USD/月のインスタンスを作りMariaDBを入れてやる、多分これがいちばんお安く上がるw

できた。ここにMariaDBを入れていきます。

話が長くなったので記事を分けました。
最後にデータベースサーバとアクセス情報を変更して、稼働しました!

Test site.

No Description

あとmailhogを使っているからそこをなんとかしないとですが、明日とか対応しよう。

コメント

タイトルとURLをコピーしました