Google Cloud Next '19に参加しておきながら、全然GCPを勉強していなかったので、以下の記事を試してみることにしました。
ASP.NET CoreのWEBアプリをGAE(Google App Engine)にデプロイするというものです。
codelabs.developers.google.com
私が試した時(2019/09)は、既にdotnetのVersionが2.1でしたので、コマンドが異なります。
dotnet new -t webではなく、dotnet new mvcです。
また、Linuxコマンドの知識は必須です。
メインエントリのProgram.csを修正するだけでも苦戦します。
- lsでファイル一覧を確認。
- (私の経験のある。)vimでファイルを修正。
ベータ版としてコードエディタを使えます。ベータ版とはいえ、簡単な修正と保存は問題なく出来ます。
すると、いつものページが。
Dockerfileは、以下のようにしました。
FROM mcr.microsoft.com/dotnet/core/aspnet:2.1 COPY . /app WORKDIR /app EXPOSE 8080/tcp ENV ASPNETCORE_URLS http://*:8080 ENTRYPOINT [ "dotnet", "HelloWorldAspNetCore.dll" ]
https://hub.docker.com/_/microsoft-dotnet-core-aspnet/
そして、デプロイ。
感想
なんとなく、GAEのイメージがつかめました。
ビルドしたアプリをDockerfileとapp.yamlを生成して、deployすればいいと。
これなら、手軽にWebアプリも公開出来そうでいいですね。
app.yamlとDockerfileの組み合わせについて
app.yamlを以下のようにruntimeをcustomではなく、aspnetcoreにすれば、Dockerfileはいらない(逆に取り除いてくれとされる)ようです。
runtime: aspnetcore env: flex
すると、Google Cloud Platform上では、aspnetcoreと表示されるのでこっちの方がよさそうな気もしてます。