開発者向け
Dockerを使用してRaspberryPiでKenticoCloud.NETボイラープレートをホストする
By Bryan Soltis
柔軟性が好きではない人はいますか?プログラミングからチェーンソーのジャグリングまで、あらゆる状況に適応する能力は常に歓迎される能力です。新しいデバイスとプラットフォームが毎日リリースされているため、これはWebアプリケーションにとって特に重要になります。 .NET Core、Docker、およびKenticoCloudを入力します。これらはそれぞれ、開発者がいくつかの素晴らしいソリューションを構築するために使用できる柔軟なアーキテクチャの非常に有能なコンポーネントです。私を信じないの?方法をお見せしましょう…
サンプルシナリオ
あなたはいくつかの開発者会議に向かうことを望んでいる技術エバンジェリストです。 Kentico Cloudの実用的なデモが必要ですが、必ずしも何かを常にホストする必要はありません。軽量で、簡単に更新でき、最小限のコストで何かが必要です。確かに、Azureで完全にスローして、必要なときに開始/停止することはできますが、そのロジックはこのブログを狂わせるので、それがオプションではないふりをしましょう。ソリューション? Raspberry Pi + Docker + .NETCore。はい、それはうまくいくでしょう!それがどのように機能するかをお見せしましょう。
Kenticoクラウドボイラープレートを入手する
すべてはベースから始まります。私の場合、それはKentico Cloud .NETCoreボイラープレートでした。このコミュニティ主導のサンプルサイトは、非常に才能のあるパートナーとKentico開発者が作成したもので、ヘッドレスCMSを超スリムな.NETCoreアプリで活用する方法を示しています。この超軽量アプリケーションは、Kentico Cloud APIに接続し、データを取得し、MVCを使用して表示する方法を示しています。これは、Kentico Cloudの使用を開始しようとしている開発者にとって最適な基盤であり、Docker-a-ficationの最適な候補です。
ボイラープレートを入手したいですか?ここから入手してください:
ASP.NET CoreMVC用のKenticoクラウドボイラープレート
私のシナリオでは、リポジトリのクローンをローカルに作成し、すべてを自分のマシンで実行しました。

Dockerをインストールする
ボイラープレートを配置したら、次のステップはDockerを入手することでした。以前に開発を行ったことがなかったため、Docker forWindowsプラットフォームをインストールする必要がありました。これにより、マシン上に動作するDocker環境が作成され、コンテナーをローカルコンピューターにデプロイして、一連のコマンドラインコードを記述できるようになりました。
最終的にイメージをRaspberryPiにデプロイする予定だったため、タスクバーのDockerインスタンスをLinuxコンテナーに更新しました。

Dockerサポートを追加する
Dockerをインストールしたら、次のステップはアプリにDockerサポートを追加することでした。 Visual Studioには、コンテキストメニューからこれを行うための組み込みの方法が用意されています。これにより、関連するDockerファイルとともに新しいプロジェクトがソリューションに追加されます。これは、Visual Studioのみを使用する場合に、サポートを追加するための優れた方法です。

私の場合、Dockerファイルを手動で作成することを選択しました。これにより、希望どおりに値を設定することができました。

Dockerファイルの完全なコードは次のとおりです。 buildコマンドとランタイム構成がlinux-armとarm32v7に設定されていることに注意してください。
FROM microsoft/aspnetcore-build:2 AS build-envWORKDIR /app# Copy csproj and restore as distinct layersCOPY *.csproj ./RUN dotnet restore# Copy everything else and buildCOPY . ./RUN dotnet publish -c Release -o out -r linux-arm# Build runtime imageFROM microsoft/dotnet:2.0.0-runtime-stretch-arm32v7WORKDIR /appCOPY --from=build-env /app/out ./ENTRYPOINT ['dotnet', 'KenticoCloudNETCoreDockerDemo1.dll']EXPOSE 80
Dockerイメージをビルドする
Dockerサポートが追加されたので、イメージをビルドする準備ができました。 Visual Studio Codeにジャンプして、組み込みのターミナルを活用しました(そしてクールになりました)。イメージを作成するために、次のコマンドを実行しました。 (末尾のスペース/ピリオドに注意してください)
docker build -t silver8642 / kenticocloudnetcoredockerdemo1。

このコマンドは、Dockerコンテナーのローカルイメージを作成しました。次に、イメージをDockerHubアカウントにアップロードしてデプロイできます。
Dockerイメージをプッシュする
イメージが作成されたら、RaspberryPiからアクセスできる必要がありました。次のコマンドを使用して、イメージをDockerHubアカウントにプッシュしました。もう1つのオプションは、イメージをUSBドライブにコピーして手動で展開することですが、インターウェブを使用する方がはるかに楽しいです。
docker push silver8642 / kenticocloudnetcoredockerdemo1

これがアップロードされた画像です。

展開
イメージを作成してアップロードしたら、最後のピースはそれを私のRaspberryPiにデプロイすることでした。私の環境では、新しいRasbianインスタンスを作成し、すべてが更新されていることを確認しました。次に、次のコマンドを使用してDockerをインストールしました。
curl -sSL https://get.docker.com | sh
次に、Dockerが実行されていて、コンテナーが空であることを確認しました。
sudo docker ps -a

次のステップは、新しいイメージをプルして新しいコンテナーをセットアップすることでした。次のコマンドには、イメージをプルし、ポート80でリッスンする新しいコンテナーを作成し、常に再起動するように設定するために必要なすべてのものが含まれていました。
sudo docker run –restart = always -d -p 80:80 silver8642 / kenticoclouddotnetcoredockerdemo1

コンテナが正常に作成されたことを確認するために、containerlistコマンドを再度実行しました。
sudo docker ps -a

最終結果
ラップトップから、 Raspberry PiのIPアドレスの新しいhostsファイルエントリを作成し、サイトが正しく表示されていることを確認しました。

甘い!これで、Kentico Cloud .NETCoreサイトで動作するポータブルWebサーバーができました。これにより、ホスティング環境を一切使用せずに、すばやくアクセスし、必要に応じて更新をプッシュすることができます。
まとめ
この記事では、Kentico Cloudプラットフォーム、.NET Core、およびDockerがいかに用途が広いかを示したいと思いました。 .NET CoreとDockerを活用することで、Kenticoクラウドサイトをほぼすべてのデバイスに簡単にデプロイできます。 Kentico CloudのAPIはテクノロジーに依存しないため、NodeJS、PHP、またはその他のプログラミング言語に同じ概念を使用できます。あなたがいくつかの素晴らしいシナリオを考え出し、KenticoCloudでの作業が大好きになることを私は知っています。がんばろう!
もっと詳しく知る
プロセスについてもっと知りたいですか?これらのリンクをチェックしてください:
Dockerを使用してRaspberryPi用の.NETCoreアプリを構築する
Docker-a-fied Kentico Cloud .NET CoreBoilerplateプロジェクトはこちらから入手できます。