当サイトを最適な状態で閲覧していただくにはブラウザのJavaScriptを有効にしてご利用下さい。
JavaScriptを無効のままご覧いただいた場合には一部機能がご利用頂けない場合や正しい情報を取得できない場合がございます。
承知しました
本サイトではWebサイトのエクスペリエンスを向上させるために、Cookieを使用しています。Cookieはブラウザの設定から無効にできます。本サイトで使用するCookieについては、プライバシーポリシーをご確認ください。

Blog

ブログ

開発者向け

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クラウドボイラープレート

私のシナリオでは、リポジトリのクローンをローカルに作成し、すべてを自分のマシンで実行しました。

Kentico Kontent


Dockerをインストールする

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

Docker forWindowsをインストールする

最終的にイメージをRaspberryPiにデプロイする予定だったため、タスクバーのDockerインスタンスをLinuxコンテナーに更新しました。

Kentico Kontent

Dockerサポートを追加する

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

Kentico Kontent


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

Kentico Kontent


Dockerファイルの完全なコードは次のとおりです。 buildコマンドとランタイム構成がlinux-armarm32v7に設定されていることに注意してください。

 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。

Kentico Kontent


このコマンドは、Dockerコンテナーのローカルイメージを作成しました。次に、イメージをDockerHubアカウントにアップロードしてデプロイできます。

Dockerイメージをプッシュする

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

docker push silver8642 / kenticocloudnetcoredockerdemo1

Kentico Kontent


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

Kentico Kontent

展開

イメージを作成してアップロードしたら、最後のピースはそれを私のRaspberryPiにデプロイすることでした。私の環境では、新しいRasbianインスタンスを作成し、すべてが更新されていることを確認しました。次に、次のコマンドを使用してDockerをインストールしました。

curl -sSL https://get.docker.com | sh

次に、Dockerが実行されていて、コンテナーが空であることを確認しました。

sudo docker ps -a

Kentico Kontent


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

sudo docker run –restart = always -d -p 80:80 silver8642 / kenticoclouddotnetcoredockerdemo1

Kentico Kontent


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

sudo docker ps -a

Kentico Kontent

最終結果

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

Kentico Kontent


甘い!これで、Kentico Cloud .NETCoreサイトで動作するポータブルWebサーバーができました。これにより、ホスティング環境を一切使用せずに、すばやくアクセスし、必要に応じて更新をプッシュすることができます。

まとめ

この記事では、Kentico Cloudプラットフォーム、.NET Core、およびDockerがいかに用途が広いかを示したいと思いました。 .NET CoreとDockerを活用することで、Kenticoクラウドサイトをほぼすべてのデバイスに簡単にデプロイできます。 Kentico CloudのAPIはテクノロジーに依存しないため、NodeJS、PHP、またはその他のプログラミング言語に同じ概念を使用できます。あなたがいくつかの素晴らしいシナリオを考え出し、KenticoCloudでの作業が大好きになることを私は知っています。がんばろう!

もっと詳しく知る

プロセスについてもっと知りたいですか?これらのリンクをチェックしてください:

Kenticoクラウド開発者ハブ

.NETCoreアプリケーションをDocker化する

Dockerを使用してRaspberryPi用の.NETCoreアプリを構築する

Dockerコマンドラインを使用する

DockerがRaspberryPiに登場

Docker-a-fied Kentico Cloud .NET CoreBoilerplateプロジェクトはこちらから入手できます。

GitHub-Kentico Cloud .NET CoreDockerデモ1

Headless CMSの導入をお考えでしょうか?

クラウドとマルチデバイスに最適化されたKentico Kontentをお試しください