.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • 「セカンド・ステップ」では、
    以下の手順でASP.NET Coreアプリケーションのデプロイを行う。

立上

こちらの手順では、CFコマンドを使用するようで、
事前に、Cloud Foundry CLI(Win版)をインストールしておく。

  • exe形式インストーラーでインストール
  • cmdで「cf」が動くか確認する。

演習

get-started-aspnet-core

ソースコードの取得

  • 以下の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ディレクトリ以下にクローンされる。

ビルドして動作確認

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の書換

ライト・アカウントの価格プランは、最大で256MBだったので、

Cloud Foundry CLIでデプロイ

  • 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

アプリケーションの動作確認

成功の状態で、前述の[アプリ URL にアクセス]リンクを押下すると、
GetStartedDotnet? のエンドポイントにアクセスし動作確認できる。

自作アプリ

OpenShiftセカンド・ステップで使った、コレを使用。

ソースコードの取得

  • 以下のURLでGitクローンする。
    https://github.com/daisukenishino2/opneshift.git
  • Gitクライアント
    >git clone https://github.com/daisukenishino2/opneshift.git
  • TortoiseGit?でもOK
  • opneshiftディレクトリ以下にクローンされる。

ビルドして動作確認

必要に応じて、前手順と同様にビルドして動作確認

manifest.ymlの追加

ライト・アカウントの価格プランは、最大で256MBだったので、

  • 先程作成したリソースを削除
  • 先のmanifest.ymlを...\opneshift\WebApplication1\以下にコピペし以下のように書換。
    - name: GetStartedDotnet
    - name: WebApplication1

Cloud Foundry CLIでデプロイ

  • Cloud Foundry CLIを利用し、IBM Cloudにログイン
  • get-started-aspnet-coreディレクトリでcf push
    >cf push
  • 失敗したらログ確認(成功してもログ確認)
    >cf logs WebApplication1 --recent

アプリケーションの動作確認

成功の状態で、前述の[アプリ URL にアクセス]リンクを押下すると、
WebApplication1 のエンドポイントにアクセスし動作確認できる。

余談

実は、この手順動かなかった。以下の対応で動くようになる。

  • 以下のようなログを確認できた。
    >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
Last-modified: 2018-07-10 (火) 01:03:29 (126d)