「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Cloud Foundry]] --[[Cloud Foundryファースト・ステップ]] --Cloud Foundryセカンド・ステップ *目次 [#w43678d7] #contents *概要 [#oe73b239] **コンテンツ [#x6752ba6] **内容 [#x6752ba6] -「[[ファースト・ステップ>Cloud Foundryファースト・ステップ]]」では、~ 基本的操作と[[Node.js]]アプリケーションのデプロイを行った。 -「セカンド・ステップ」では、~ 以下の手順でASP.NET Coreアプリケーションのデプロイを行う。 --IBM Bluemixで.Net Coreしてみる~ https://qiita.com/yakumomo/items/71025e7234ff77d63320 -[[ローカルに.NET Coreが必要。>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20Core%E3%81%AE%E9%96%8B%E7%99%BA]] **準備 [#z2ea4c69] こちらの手順では、CFコマンドを使用するようで、~ 事前に、Cloud Foundry CLI(Win版)をインストールしておく。 -cloudfoundry/cli: The official command line client for Cloud Foundry~ https://github.com/cloudfoundry/cli#downloads --exe形式インストーラーでインストール --cmdで「cf」が動くか確認する。 *演習 [#e0504709] **get-started-aspnet-core [#qb53b557] -IBM-Cloud/get-started-aspnet-core~ https://github.com/IBM-Cloud/get-started-aspnet-core ***ソースコードの取得 [#s974f2f9] -以下のURLでGitクローンする。 https://github.com/IBM-Bluemix/get-started-aspnet-core --Gitクライアント >git clone https://github.com/IBM-Bluemix/get-started-aspnet-core --TortoiseGitでもOK -get-started-aspnet-coreディレクトリ以下にクローンされる。 ***ビルドして動作確認 [#s899d07c] VisualStudioからビルドしてもイイが、以下でも可能。 -get-started-aspnet-coreにcd >cd .../get-started-aspnet-core -ビルドして実行 >dotnet restore >dotnet run -p <*.csprojファイルパス> launchSettings.json からの起動設定を使用中... Hosting environment: Development Content root path: ...\get-started-aspnet-core\src\GetStartedDotnet Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down. -エンドポイントにアクセスして動作確認 http://localhost:5000 ***manifest.ymlの書換 [#faaade3d] ライト・アカウントの価格プランは、最大で256MBだったので、 -[[ファースト・ステップ>Cloud Foundryファースト・ステップ]]で作成したリソースを削除 -以下のように書換。 memory: 512M ↓ memory: 256M ***Cloud Foundry CLIでデプロイ [#u540b83c] -Cloud Foundry CLIを利用し、IBM Cloudにログイン --やっぱりPWDでログインする。 >cf login API endpoint> https://api.ng.bluemix.net Email> daisukenishino77@gmail.com Password> Authenticating... OK Targeted org daisukenishino77@gmail.com Targeted space dev API endpoint: https://api.ng.bluemix.net (API version: 2.92.0) User: daisukenishino77@gmail.com Org: daisukenishino77@gmail.com Space: dev -get-started-aspnet-coreディレクトリでcf push~ >cf push -失敗したらログ確認(成功してもログ確認) >cf logs GetStartedDotnet --recent ***アプリケーションの動作確認 [#t7234dcc] 成功の状態で、前述の[アプリ URL にアクセス]リンクを押下すると、~ GetStartedDotnet のエンドポイントにアクセスし動作確認できる。 **自作アプリ [#u7149128] [[OpenShiftセカンド・ステップで使った、コレ>OpenShiftセカンド・ステップ#ga229368]]を使用。 ***ソースコードの取得 [#e27e94a4] -以下のURLでGitクローンする。 https://github.com/daisukenishino2/opneshift.git --Gitクライアント >git clone https://github.com/daisukenishino2/opneshift.git --TortoiseGitでもOK -opneshiftディレクトリ以下にクローンされる。 ***[[ビルドして動作確認>#s899d07c]] [#b341123e] 必要に応じて、前手順と同様に[[ビルドして動作確認>#s899d07c]]。 ***manifest.ymlの追加 [#we5e35fd] ライト・アカウントの価格プランは、最大で256MBだったので、 -[[先程>#qb53b557]]作成したリソースを削除 -先の[[manifest.yml>#faaade3d]]を...\opneshift\WebApplication1\以下にコピペし以下のように書換。 - name: GetStartedDotnet ↓ - name: WebApplication1 ***Cloud Foundry CLIでデプロイ [#u540b83c] -Cloud Foundry CLIを利用し、IBM Cloudにログイン -get-started-aspnet-coreディレクトリでcf push~ >cf push -失敗したらログ確認(成功してもログ確認) >cf logs WebApplication1 --recent ***アプリケーションの動作確認 [#l565f347] 成功の状態で、前述の[アプリ URL にアクセス]リンクを押下すると、~ WebApplication1 のエンドポイントにアクセスし動作確認できる。 ***余談 [#o30a8afc] 実は、[[この手順>#u540b83c]]動かなかった。以下の対応で動くようになる。 -以下のようなログを確認できた。 >cf logs WebApplication1 --recent ・・・ 2018-06-29T16:12:24.16+0900 [APP/PROC/WEB/0] ERR Error: 2018-06-29T16:12:24.16+0900 [APP/PROC/WEB/0] ERR An assembly specified in the application dependencies manifest (WebApplication1.deps.json) was not found: 2018-06-29T16:12:24.16+0900 [APP/PROC/WEB/0] ERR package: 'Microsoft.AspNetCore.Antiforgery', version: '2.0.2' 2018-06-29T16:12:24.16+0900 [APP/PROC/WEB/0] ERR path: 'lib/netstandard2.0/Microsoft.AspNetCore.Antiforgery.dll' 2018-06-29T16:12:24.16+0900 [APP/PROC/WEB/0] ERR This assembly was expected to be in the local runtime store as the application was published using the following target manifest files: 2018-06-29T16:12:24.16+0900 [APP/PROC/WEB/0] ERR aspnetcore-store-2.0.6.xml ・・・ -エラーメッセージから以下のような情報を取得できた。 --ASP.NET Core MVCなアプリのコンテナで、~ ASP.NET Coreのバージョンを上げようとしたら~ ビルドに失敗するようになったのと原因 - Living Absurd World~ https://blog.hmatoba.net/Article/170 --上記の内容をサマると、 ---原因:依存パッケージのバージョン不一致 ---対策:PublishWithAspNetCoreTargetManifest=falseを追記すると治る。 <PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest> </PropertyGroup> -上記の対策後、再度「cf push」して、(詳細あまり解ってないケド)動いた。