mottox2 blog

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

bloggae

仕事でGAE Flexible Environmentに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を使っているのに、なんでソースコード見ることになるのか…

dev

ウェブ技術で縦書きを含む画像を生成したい

ここ最近、Web技術を利用した画像生成に興味があります。本記事では、日本語における表現の一種である縦書きに焦点を当て、Web技術を使った縦書きを含む画像生成方法についての調査をまとめました。 > 現

blog

Netlify Formsで問い合わせフォームを作ったら簡単だった

追記(2022/12/29): 問い合わせに対応する窓口をTwitterに統一したいので、フォームページは削除しました。 当ブログは静的サイトホスティングサービスのNetlifyでホスティングされ

netlify
dev

翻訳でHacktoberfestに参加しました

毎年10月に開催されるHacktoberfestに参加しました。このイベントはOSSへの貢献を行い、期間中に規定数(4つ)の貢献を行った人に特典がプレゼントされるものになっています。 自分はドキュメ

Copyright © 2023 @mottox2 All Rights Reserved.