仕事でGAE Flexible EnvironmentにNodejsのアプリケーションをホスティングしています。その際、デフォルトの設定だとnpm install --production
が実行されるのでdevDependenciesのインストールはスキップされることに困っていました。
ちょっと前まで手元でビルドしてgcloud app deploy
を叩いており、さすがにイケてないなと思っていましたが、ついに解決しました。
以下のようにgcp-build
をnpm scriptとして定義してあげるとデプロイ中にnpm run gcp-build
を行ってくれます。
{
"scripts": {
"build": "NODE_ENV=production webpack",
"gcp-build": "npm run build"
}
}
nodejs-docker/Dockerfile.txt · GoogleCloudPlatform/nodejs-docker でhasBuildCommand
がtrueだとnpm run gcp-build
を実行してくれる。
nodejs-docker/detect_setup.ts でpackgeJson.scripts
にgcp-build
が定義されていればhasBuildCommand
がtrueになる。
gcloud app deploy
を実行すると、Container Builderでイメージのビルドが行われている。nodejs-dockerはそのビルドに使われるDockerfileを保持するリポジトリ。
RailsもGCPで運用しており、GoogleCloudPlatform/ruby-dockerにDockerfileがあってトラブルがあったときはよくお世話になっています。
gcloud beta app gen-config --custom
でDockerfile
を吐き出してくれて、app.yaml
のruntime: custom
とすることで自分が作っているDockerfileを見てくれる。
あまりスタンダードなデプロイから離れたくなかったので今回の標準的な方法(?)を採用した。ただ、将来的にはGKEでk8sを動かす気がするのでDockerfileは自分で書くことになりそう。
正直ビルドプロセスをおまかせしたいからApp Engineを使っているのに、なんでソースコード見ることになるのか…
ここ最近、Web技術を利用した画像生成に興味があります。本記事では、日本語における表現の一種である縦書きに焦点を当て、Web技術を使った縦書きを含む画像生成方法についての調査をまとめました。 > 現
追記(2022/12/29): 問い合わせに対応する窓口をTwitterに統一したいので、フォームページは削除しました。 当ブログは静的サイトホスティングサービスのNetlifyでホスティングされ
毎年10月に開催されるHacktoberfestに参加しました。このイベントはOSSへの貢献を行い、期間中に規定数(4つ)の貢献を行った人に特典がプレゼントされるものになっています。 自分はドキュメ