この記事では、Dockerコンテナー、
Tutum 、サーバー、またはクラウドに基づいて
ASP.NET 5(Vnext)アプリケーションの継続的な展開を行う方法を
示します 。
Dockerの資料を勉強するとき、私が最も疑問に思ったのは、プライベートリポジトリをサーバーにデプロイしてこのプロセスを自動化することでした。
リポジトリ
最初に
Bitbucketにプライベートリポジトリを作成する必要があります。任意のタイプのリポジトリを選択できますが、この例では最も一般的な
Gitを使用し
ます 。
Github (有料)と
GitLab (無料ですが、
https: //hub.docker.comではサポートされていません)の両方でプライベートリポジトリを作成できますが、歴史的に私は主にbitbucketとmercurialを使用していたので、gitに切り替えました。
Dockerコンテナからssh経由でリポジトリをダウンロードできるようにするには、アカウントに
キーを
追加する必要があります(アカウントの管理-> SSHキー-キーの追加)。
次に、リポジトリをマシンにクローンする必要があります。
ソースツリーを使用してこれを行い、
そこに新しい
Vnextプロジェクトを追加し、sshキーとDockerfileを追加します。
ベータ8、iis、vsについてベータ8を使用して作業する場合、パッケージをスタジオから復元することはできません;コンソールからdnu復元を行う必要があります。
IISに関しては、
RaveNoXが
答えを書きました。
つまり 、
kestrelは私たちのものですが、MacとLinuxには他のオプションはありませんでしたので、問題は大きくありません。
Dockerfileを使用してデプロイする場合、2つのアプローチがあります。
1)
COPYを作成します。Dockerfileはプロジェクトのルートにある必要があります。
2)
git cloneを作成します-Dockerfileはどこにでも配置できます。リポジトリのsshキーが近くにあることが望ましいです。
DockerfileFROM microsoft/aspnet:1.0.0-beta8
init.sh cd /app/repositoryName/ dnx -p project.json kestrel
コミットしてプッシュします。
Hub.docker.com
プロジェクトがあり、コンテナがあります。これらはすべて
ローカルでテストできます。次のタスクは、サーバー上でこれらすべてを自動的に開始することです。
アカウントを作成するか、
hub.docker.comにログインし
ます 。 その後、「自動ビルドの作成」を作成する必要があります。これは、GithubまたはBitbucketリポジトリから実行できます。
図1-自動ビルドの作成次に、アセンブリを構成する必要があります。
図2-プロジェクトのビルド設定アクティブな場合、プッシュ時にビルドが自動的に行われます。 -プロパティが設定されている場合、リポジトリにプッシュすると、設定に従って新しいコンテナのアセンブリが開始されます。
名前 -プロジェクトを収集するブランチ。デフォルトでは、すべてのブランチを収集します。
Dockerfileの場所 -Dockerfileが置かれているフォルダー、つまりフォルダー。Dockerfile名を指定する機能はサポートされていません。 このため、COPYコマンドではなく、リポジトリを介したコード取得を使用すると便利です。 1つのプライベートリポジトリで、APIや長時間の操作を処理するワーカーなど、共通のコードベースを持つ複数のプロジェクトを収集できます。
Dockerタグ名 -特定のコンテナを作成するために後で使用されるタグ。
すべてのブランチに対してアセンブリが選択されている場合、[トリガー]ボタンは使用できないため、プッシュしてビルドする必要があります。
ビルドの詳細ステータスと
ビルドログを確認します。すべてが組み立てられたら、次のステップに進みます。
腫瘍
Tutumのドッカーハブを通過します。
図3-Tutumにリポジトリを追加してサービスを作成するリポジトリ名 -hub.docker.comのログイン/リポジトリ
hub.docker.comの ユーザー名と
パスワード次に、クラウドプロバイダーを構成して、Tutumパネルからサーバーを作成できるようにします。
図4-必要なクラウドサービスへのリンクを追加するサービスを公開するためのサーバー(ノード)を作成しましょう。
図5-サーバーとそのパラメーターを追加します。この場合はDOデプロイタグ -サービスとそれらがデプロイされているマシンを相関させるためにサーバーの説明に記述するタグ。
Vscale.ioVscale.ioマシンを追加する方法:
[
Bring your own node]をクリックし
ます。次の形式のコマンドが表示されます。
curl -Ls get.tutum.co | sudo -H sh -s b5730f134e5f4674575c45a65a0ddd84sshを介してvscale.ioサーバーに接続して完了する必要があります。
新しい
サービスを作成する
図6-Tutumでのサービスの作成イメージタグ -hub.docker.comに割り当てたタグ。タグがない場合、リポジトリを追加するときにログイン\パスワードを誤って入力した可能性があります。
デプロイタグ -サービスとそれらがデプロイされているマシンを相関させるためにサーバーの説明に記述するタグ。
ポート -Publishedをポート5004にして、80番目のポートを割り当てる必要があります。
[
作成して展開]をクリックし
ますサービスはStackファイルを介して作成できます-非常に便利なことで、複数のサービスを一度にキャプチャし、パラメーターをすばやく編集できます。10個のサービスがあり、これはほんの始まりです。少なくとも3つのサービスを追加します...
スタックファイル asp: image: 'login/reponame:tag' ports: - '80:5004' restart: always tags: - tagdeploy
これで、
エンドポイントに示されたアドレスにあるサーバーにサービスを作成して展開し、サイトを確認できます。
少し魔法をかけることは残っているので、新しいコンテナを組み立てた後、自動的に
再デプロイします。
サービスにアクセスし、「
トリガー」タブを選択します。
図7-Tutumで再展開するためのWebhook結果のURLをリポジトリのdockerハブに追加する必要があります。
図8-TutumからWebhookを追加おめでとうございます-すべてが機能し、自動的に展開されます。
PS www.tutum.coは崩壊しましたが、今は
cloud.docker.comになります
価格はかなり悲しいです:$ 0.02ノード/時間