「[[.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」して、(詳細あまり解ってないケド)動いた。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS