mottox2 blog

GAE(nodejs)でデプロイ中にbuildを含める方法

bloggae

仕事でGAEにnodejsのアプリケーションをデプロイをやってて、デフォルトの設定だとnpm install --productionが実行されるのでdevDependenciesのインストールはスキップされる。
ちょっと前まで手元でビルドしてgcloud app deployを叩いていたんだけど、さすがにイケてないなと思ってたんだけど、ついに解決した。

まとめ

以下のようにgcp-buildをnpm scriptとして定義してあげるとデプロイ中にnpm run gcp-buildを行ってくれる。

package.json
{
  "scripts": {
    "build": "NODE_ENV=production webpack",
    "gcp-build": "npm run build"
  }
}

該当のDockerfile

nodejs-docker/Dockerfile.txt · GoogleCloudPlatform/nodejs-dockerhasBuildCommandがtrueだとnpm run gcp-buildを実行してくれる。
nodejs-docker/detect_setup.tspackgeJson.scriptsgcp-buildが定義されていればhasBuildCommandがtrueになる。

nodejs-dockerリポジトリ

gcloud app deployを実行すると、Container Builderでイメージのビルドが行われている。nodejs-dockerはそのビルドに使われるDockerfileを保持するリポジトリ。

RailsもGCPで運用しているんだけど、GoogleCloudPlatform/ruby-dockerにDockerfileがあってトラブルがあったときはよくお世話になっている。

自前のDockerfileを使用する手もある

gcloud beta app gen-config --customDockerfileを吐き出してくれて、app.yamlruntime: customとすることで自分が作っているDockerfileを見てくれる。

あまりスタンダードなデプロイから離れたくなかったので今回の標準的な方法(?)を採用した。ただ、将来的にはGKEでk8sを動かす気がするのでDockerfileは自分で書くことになりそう。


正直ビルドプロセスをおまかせしたいからApp Engineを使っているのに、なんでソースコード見ることになるのか…

B!
dev

ブログのReactを16.8にあげてReact Hooksで書き換えてみた

2019/02/06にReact16.8がリリースされ、16.7のalphaから入っていたReact Hooksが安定版にやってきました。 そこで今回このブログで使われているReactを16.8に上

javascriptreact
blog

Netlifyのデプロイ通知をDiscordで受け取る方法

Netlifyでサイトをホスティングしていると、デプロイ開始から完了までのタイムラグがあることでデプロイの完了を把握するにはWeb UIを確認する必要があります。 しかし、デプロイごとにWeb UI

discordnetlify
dev

netlify-cliを使ってCLIでデプロイを行う

Netlifyには優れたUIを持つWeb画面が用意されていますが、CLI(コマンドラインインターフェース)も用意されており、CLIのみでのデプロイも可能になっています。 通常の開発ではWeb UIで

netlify