AntDeployツール機能の紹介
- Dockerワンクリックデプロイメントをサポート(netcoreをサポート)
- IISワンクリック展開をサポート(ネットコアとフレームワークをサポート)
- Windowsサービスのワンクリック展開をサポート(ネットコアとフレームワークをサポート)
- Linuxサービスのワンクリックデプロイメントをサポート(netcoreをサポート)
- (インクリメンタルリリースのサポート)(ワンクリックロールバックのサポート)(イグニッションのサポート)(特定のファイルリリースの選択のサポート)(リリースレコードの表示のサポート)
- Visual Studioからの独立した使用をサポート(クロスプラットフォームサポートWindowsシステムおよびMacシステム)
- サポートエージェントのバッチ更新
リソースアドレス:
- githubソースコード:AntDeploy
- Visual Studioプラグイン(同期):AntDeploy-Visual Studio Marketplace
- Visual Studioプラグイン(非同期):AntDeployVsix-Visual Studio Marketplace
- (Windowsサーバーにエージェントサービスをインストールする場合)インストール方法:https://github.com/yuzd/AntDeployAgent/issues/1
- [Windowsサービス]または[Linuxサービス]に公開するには、サーバーにエージェントをインストールする必要があるのはなぜですか?:https://github.com/yuzd/AntDeployAgent/issues/7
- Visual Studioとは別に使用する方法:https://github.com/yuzd/AntDeployAgent/issues/18
- その他のチュートリアル(原則を読み、それを使用して開始した後):https://github.com/yuzd/AntDeployAgent/issues
AntDeployを使用して画像を作成し、ワンクリックでTencentCloudプライベート画像ウェアハウスをアップロードします
1.デモンストレーション環境の説明:
- オペレーティングシステム:Windows 10 Professional Workstation Edition x64、カーネルバージョン番号2004
- Microsoft Visual Studio Enterprise2019版本16.8.2
- ローカルHyper-Vにubuntu-20.04仮想マシンをインストールします(vmターミナルとコードを操作します)
- AntDeployオフラインバージョンバージョン:7.28
予防:
- ローカルに構成されたVMが外部ネットワークにアクセスしてホストと通信できることを確認し、ネットワークツールを確認します=》#sudo apt install net-tools
- vm install docker =》#sudo apt update&sudo apt installdocker.ioを確認してください
- vm install unzip =》#sudo apt installunzipを確認してください
- vsコードインストールプラグイン(オプションの構成:Remote-WSL、Docker)、ssh =》#[email protected]プロンプトを介してvmに接続しますパスワードの入力
国内のミラーソースを構成するためのvminstall docker:
- Aliミラーソース構成= " ubuntuミラー-ubuntuダウンロードアドレス-ubuntuインストールチュートリアル- 対応するLinuxバージョンを構成するためのAlibabaオープンソースミラーステーション(aliyun.com)。
- 次のように、vm(ubuntuに基づく)がポート22を開くことを確認します。
1.UbuntuのIPアドレスを表示します
ifconfig
2.実行後、本項目のサービス機能がインストールされていない可能性があります。プロンプトに従ってネットワークツールを実行およびインストールしてください。
sudo apt install net-tools
インストール後、vs code / pwsh sshリモートツールを介して接続しようとすると、接続が失敗したことがわかりました。
この時点で、Ubuntuのポートを約22で確認し、次のようにコマンドを実行します。
netstat -ntlp|grep 22
参数解释:
-n 不以进程的服务名称,以端口号(port number)显示
-t 列出tcp网络封包的信息
-l 列出目前正在网络监听(listen)服务
-p 列出该网络服务的进程
現時点でポート22にプロセスコンテンツがない場合は、次のコマンドを実行します。
#安装openssh-server
sudo apt install openssh-server
#安装ufw防火墙
sudo apt install ufw
#启动ufw防火墙
sudo ufw enable
#ufw开发22端口
sudo ufw allow 22
- dockerがvmにインストールされた後、root以外のアカウントがそれを使用することを許可されます。構成手順は次のとおりです。
1.Dockerグループを作成します
sudo groupadd docker
2.現在のユーザーをDockerグループに追加します
sudo gpasswd -a ${USER} docker
3.Dockerサービスを再起動します
sudo service docker restart或sudo systemctl restart docker
4.現在のユーザーはシステムからログアウトし、再度ログインします
# su root
# su chait
5. dockerコマンドを実行して、使用できるかどうかを確認します
docker ps 或 docker images
失敗した場合は、VMを再起動して再度テストできます。
再起動コマンド:
- リブート
- shutdown-rはすぐに再起動します
- shutdown -r 1010分後の自動再起動
- shutdown -r 20:3520:35に再起動
シャットダウンコマンド:
- 停止はすぐにシャットダウンします(通常は-pを追加して電源をオフにします)
- 電源オフはすぐにシャットダウンします
- shutdown-hすぐにシャットダウンします
- shutdown -h 1010分後の自動シャットダウン
shutdownコマンドでshutdownが設定されている場合は、shutdown-cコマンドを使用してシャットダウンをキャンセルできます。
2. AntDeploy画像の作成:
2 | 1 .net5関連のミラーを準備します。中国でのミラーのダウンロードは、ネットワーク上の理由により失敗する可能性があります。
- dotnet / sdk:.NET SDK
- dotnet / aspnet:ASP.NETCoreランタイム
- dotnet / runtime:.NETランタイム
- dotnet / runtime-deps:.NETランタイムの依存関係
- dotnet / samples:.NETサンプル
必要に応じてミラーをプルするだけで、ここでのデモには次のミラーのみが必要です。.NETSDKおよびASP.NETCoreランタイム
#5.0 (Current)
#5.0 ASP.NET Core Runtime
docker pull mcr.microsoft.com/dotnet/aspnet:5.0
docker pull mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim
#5.0 .NET SDK
docker pull mcr.microsoft.com/dotnet/sdk:5.0-buster-slim
Tencent Cloud Platformは、Dockerプライベートイメージウェアハウスを準備して、VMとホストがログインして正常にアクセスできるようにします。
#登录腾讯云docker registry
sudo docker login --username=[user] ccr.ccs.tencentyun.com
#提示输入对应的密码即可
#从registry拉取镜像
sudo docker pull ccr.ccs.tencentyun.com/sws-center-ol-service-dev/rg-sws-center-ol-dev-2069:[tag]
#将镜像推送到registry
sudo docker login --username=[user] ccr.ccs.tencentyun.com
sudo docker tag [ImageId] ccr.ccs.tencentyun.com/sws-center-ol-service-dev/rg-sws-center-ol-dev-2069:[tag]
sudo docker push ccr.ccs.tencentyun.com/sws-center-ol-service-dev/rg-sws-center-ol-dev-2069:[tag]
TencentクラウドプラットフォームのDockerプライベートミラーウェアハウスは、次のミラーを用意しています。
ミラーをローカルでプルする場合、国内のミラーソースを構成できます。
ローカルのWindowsPowerShell / PowerShellからイメージをダウンロードし、Docker for Windowsクライアントツールをマシンにインストールして、イメージのソースアドレスを構成します。
2 | 2目標を達成するには:
- vs2019を使用して、対応するb / sアプリケーションを作成します。これが[NetService-Jwt]です。
- AntDeployツールを使用してワンクリックイメージ(.net5に基づくアプリケーションイメージ)を作成し、それをTencentのdockerプライベートイメージウェアハウスに公開します。
- デプロイの準備、Tencent Cloud TKE(k8sに基づく)プラットフォームは、プライベートイメージウェアハウスからイメージをプルして、リソースのデプロイを実装します。
1. AntDeploy.jsonを構成し、インターフェイス操作ツールの構成後に次の構成情報を取得します。
{
"Env": [
{
"Name": "docker-ubuntu-20.04",
"ServerList": [],
"LinuxServerList": [
{
"UserName": "chait",
"Pwd": "35FE3BA71BD99AF92DB2A32F980ECDAE",
"Host": "172.29.161.146",
"NickName": "docker",
"IIsFireUrl": null,
"DockerFireUrl": "",
"WindowsServiceFireUrl": null,
"LinuxServiceFireUrl": null
}
],
"IgnoreList": [],
"WindowsBackUpIgnoreList": []
}
],
"IIsConfig": {
"SdkType": null,
"WebSiteName": "",
"LastEnvName": null,
"EnvPairList": [
{
"EnvName": "docker-ubuntu-20.04",
"ConfigName": "",
"LinuxEnvParam": null,
"DockerPort": null,
"DockerEnvName": null,
"DockerVolume": null,
"DockerOther": null
}
]
},
"WindowsServiveConfig": {
"ServiceName": "",
"SdkType": null,
"LastEnvName": null,
"EnvPairList": [
{
"EnvName": "docker-ubuntu-20.04",
"ConfigName": "",
"LinuxEnvParam": null,
"DockerPort": null,
"DockerEnvName": null,
"DockerVolume": null,
"DockerOther": null
}
]
},
"LinuxServiveConfig": {
"ServiceName": "",
"EnvParam": "",
"LastEnvName": null,
"EnvPairList": [
{
"EnvName": "docker-ubuntu-20.04",
"ConfigName": "",
"LinuxEnvParam": null,
"DockerPort": null,
"DockerEnvName": null,
"DockerVolume": null,
"DockerOther": null
}
]
},
"DockerConfig": {
"Prot": "",
"AspNetCoreEnv": "",
"LastEnvName": "docker-ubuntu-20.04",
"RemoveDaysFromPublished": "10",
"Volume": "",
"Other": "",
"EnvPairList": [
{
"EnvName": "docker-ubuntu-20.04",
"ConfigName": null,
"LinuxEnvParam": null,
"DockerPort": "",
"DockerEnvName": "",
"DockerVolume": "",
"DockerOther": ""
}
]
}
}
2. Dockerfileファイルをプロジェクトに追加し、vs2019を右クリックして、[Add] = "[DockerSupport]を選択してLinuxプラットフォームを選択します。
ローカルVMは、事前に.net5に関連する基本イメージをダウンロードし、次のように基本イメージ情報を準備します。
デフォルトで作成されたDockerfileファイルを変更し、vs 2019のファイル属性を[常に値を割り当てる]に設定します。ここにDockerfileファイルを書き込まない場合、ツールはデフォルトでファイルを生成します。
この時点で、基本環境の準備が整いました。次に、オフラインバージョンのAntDeployツール(V7.28)を使用して、対応するプロジェクトの.csprojファイルを選択し、vm通信テストへのアクセスを構成します。次にTencentCloudを構成します。 Dockerプライベートミラーウェアハウスとワンクリックリリースをクリックします。終了しました。
ここにプライベートミラーウェアハウスの名前を入力することに注意してください。ここでは、Tencent Cloudの基本的な情報の説明を吐き出します(表現は誤解を招く可能性があります)
完全なリリースログ情報:ツールバージョンAntDeploy-v7.29をリリースします。イメージをビルドするDcokerfileファイルはコメントの影響を受け、後で最適化する必要があります。
16:24:39|INFO|The Porject ENTRYPOINT name:NetServices.Jwt.dll,DotNetSDK.Version:5.0
16:24:39|INFO|-----------------Start publish[Ver:7.29]-----------------
16:24:39|INFO|CurrentProjectFolder: file://G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt#link3
16:24:39|INFO|current project Path:G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt\NetServices.Jwt.csproj
16:24:39|INFO|dotnet publish "G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt\NetServices.Jwt.csproj" -c Release -o "G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt\bin\Release\deploy_docker\docker-ubuntu-20.04\"
16:24:39|INFO|Copyright (C) Microsoft Corporation. All rights reserved.
16:24:40|INFO| Determining projects to restore...
16:24:40|INFO| Determining projects to restore...
16:24:42|INFO| All projects are up-to-date for restore.
16:24:42|INFO| All projects are up-to-date for restore.
16:24:43|INFO| NetServices.Helper.Cache -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.Cache\bin\Release\net5.0\NetServices.Helper.Cache.dll
16:24:43|INFO| NetServices.Helper.RabbitMQ -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.RabbitMQ\bin\Release\net5.0\NetServices.Helper.RabbitMQ.dll
16:24:43|INFO| NetServices.Helper.RabbitMQ -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.RabbitMQ\bin\Release\net5.0\NetServices.Helper.RabbitMQ.dll
16:24:43|INFO| NetServices.Helper.Base -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.Base\bin\Release\net5.0\NetServices.Helper.Base.dll
16:24:43|INFO| NetServices.Helper.Base -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.Base\bin\Release\net5.0\NetServices.Helper.Base.dll
16:24:43|INFO| NetServices.Helper.RestTemplate -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.RestTemplate\bin\Release\net5.0\NetServices.Helper.RestTemplate.dll
16:24:43|INFO| NetServices.Helper.RestTemplate -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.RestTemplate\bin\Release\net5.0\NetServices.Helper.RestTemplate.dll
16:24:44|INFO| NetServices.Helper.Database -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.Database\bin\Release\net5.0\NetServices.Helper.Database.dll
16:24:44|INFO| NetServices.Helper.Database -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.Database\bin\Release\net5.0\NetServices.Helper.Database.dll
16:24:44|INFO| NetServices.Helper.Log -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.Log\bin\Release\net5.0\NetServices.Helper.Log.dll
16:24:44|INFO| NetServices.Helper.Log -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Helper.Log\bin\Release\net5.0\NetServices.Helper.Log.dll
16:24:45|INFO| NetServices.Jwt -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt\bin\Release\net5.0\NetServices.Jwt.dll
16:24:45|INFO| NetServices.Jwt -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt\bin\Release\net5.0\NetServices.Jwt.dll
16:24:46|INFO| NetServices.Jwt -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt\bin\Release\deploy_docker\docker-ubuntu-20.04\
16:24:46|INFO| NetServices.Jwt -> G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt\bin\Release\deploy_docker\docker-ubuntu-20.04\
16:24:46|INFO|publish success ==> file://G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt\bin\Release\deploy_docker\docker-ubuntu-20.04#link26
16:24:46|INFO|-----------------Start package-----------------
16:24:46|INFO|package ignoreList Count:0
16:24:46|INFO|Find Dockerfile In Package: Dockerfile
16:24:49|INFO|package success,package size:14M
16:24:49|INFO|-----------------Deploy Start-----------------
16:24:49|INFO|【Server】ssh connecting 172.27.94.126...
16:24:50|INFO|【Server】Connected to [email protected]:22 via SSH
16:24:50|INFO|【Server】Changed directory to antdeploy/netservicesjwt/20201214162449/
16:24:50|INFO|【Server】uploaded 9 %
16:24:50|INFO|【Server】uploaded 21 %
16:24:50|INFO|【Server】uploaded 32 %
16:24:51|INFO|【Server】uploaded 44 %
16:24:51|INFO|【Server】uploaded 59 %
16:24:51|INFO|【Server】uploaded 71 %
16:24:51|INFO|【Server】uploaded 83 %
16:24:51|INFO|【Server】uploaded 94 %
16:24:51|INFO|【Server】uploaded 100 %
16:24:52|INFO|【Server】unzip -o -q antdeploy/netservicesjwt/20201214162449/publish.zip -d publish/
16:24:52|INFO|【Server】unzip success: antdeploy/netservicesjwt/20201214162449/publish/
16:24:52|INFO|【Server】Start Copy Files From [antdeploy/netservicesjwt/20201214162449/publish/] To [antdeploy/netservicesjwt/deploy/]
16:24:52|INFO|【Server】Success Copy Files From [antdeploy/netservicesjwt/20201214162449/publish/] To [antdeploy/netservicesjwt/deploy/]
16:24:52|INFO|【Server】Changed directory to antdeploy/netservicesjwt/deploy/
16:24:52|WARN|【Server】Volume in dockerFile is not defined
16:24:52|WARN|【Server】Docker Run Other Args in dockerFile is not defined
16:24:52|INFO|【Server】Add EXPOSE 5000 to dockerFile : 【antdeploy/netservicesjwt/deploy/Dockerfile】
16:24:52|INFO|【Server】Update DockerFile 【 \cp -rf antdeploy/netservicesjwt/deploy/Dockerfile antdeploy/netservicesjwt/20201214162449/publish/】
16:24:52|WARN|【Server】--name in Other Args is not defined
16:24:52|INFO|【Server】 docker build --no-cache --rm -t netservicesjwt:20201214162449 -f antdeploy/netservicesjwt/deploy/Dockerfile antdeploy/netservicesjwt/deploy/
16:24:53|INFO|【Server】Sending build context to Docker daemon 43.74MB
16:24:53|INFO|【Server】Step 1/6 : FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim
16:24:53|INFO|【Server】 ---> 1ad38cdee8b3
16:24:53|INFO|【Server】Step 2/6 : COPY . /publish
16:24:57|INFO|【Server】 ---> 89c1e9311f25
16:24:57|INFO|【Server】Step 3/6 : WORKDIR /publish
16:24:58|INFO|【Server】 ---> Running in ce10c33d6846
16:25:00|INFO|【Server】Removing intermediate container ce10c33d6846
16:25:00|INFO|【Server】 ---> ab9847d605e3
16:25:00|INFO|【Server】Step 4/6 : EXPOSE 8002
16:25:02|INFO|【Server】 ---> Running in e8411eb8a13e
16:25:03|INFO|【Server】Removing intermediate container e8411eb8a13e
16:25:03|INFO|【Server】 ---> c2e707157198
16:25:03|INFO|【Server】Step 5/6 : EXPOSE 5000
16:25:05|INFO|【Server】 ---> Running in 38a502ae6f0b
16:25:07|INFO|【Server】Removing intermediate container 38a502ae6f0b
16:25:07|INFO|【Server】 ---> ae6797201035
16:25:07|INFO|【Server】Step 6/6 : ENTRYPOINT ["dotnet", "NetServices.Jwt.dll"]
16:25:08|INFO|【Server】 ---> Running in b10cbf0cad95
16:25:10|INFO|【Server】Removing intermediate container b10cbf0cad95
16:25:10|INFO|【Server】 ---> 8eb53a301a0f
16:25:10|INFO|【Server】Successfully built 8eb53a301a0f
16:25:11|INFO|【Server】Successfully tagged netservicesjwt:20201214162449
16:25:11|WARN|【Server】ignore docker run
16:25:11|WARN|【Server】[upload image] - set -e; docker login -u [user] -p [pwd] ccr.ccs.tencentyun.com; docker tag 8eb53a301a0f ccr.ccs.tencentyun.com/sws-center-ol-service-dev/rg-sws-center-ol-dev-2069:jwt-v1.0.0; docker push ccr.ccs.tencentyun.com/sws-center-ol-service-dev/rg-sws-center-ol-dev-2069:jwt-v1.0.0
16:25:11|WARN|【Server】[upload image] - Login Succeeded
16:25:12|WARN|【Server】[upload image] - The push refers to repository [ccr.ccs.tencentyun.com/sws-center-ol-service-dev/rg-sws-center-ol-dev-2069]
16:25:12|WARN|【Server】[upload image] - 04b1dc15379b: Preparing
16:25:12|WARN|【Server】[upload image] - 064d1568f66a: Preparing
16:25:12|WARN|【Server】[upload image] - 8c8ce230525b: Preparing
16:25:12|WARN|【Server】[upload image] - ac1439b965df: Preparing
16:25:12|WARN|【Server】[upload image] - b22af9287e60: Preparing
16:25:12|WARN|【Server】[upload image] - f5600c6330da: Preparing
16:25:12|WARN|【Server】[upload image] - f5600c6330da: Waiting
16:25:12|WARN|【Server】[upload image] - 8c8ce230525b:
16:25:12|WARN|【Server】[upload image] - Layer already exists
16:25:12|WARN|【Server】[upload image] - 064d1568f66a:
16:25:12|WARN|【Server】[upload image] - Layer already exists
16:25:12|WARN|【Server】[upload image] - b22af9287e60:
16:25:12|WARN|【Server】[upload image] - Layer already exists
16:25:13|WARN|【Server】[upload image] - ac1439b965df:
16:25:13|WARN|【Server】[upload image] - Layer already exists
16:25:13|WARN|【Server】[upload image] - f5600c6330da:
16:25:13|WARN|【Server】[upload image] - Layer already exists
16:25:18|WARN|【Server】[upload image] - 04b1dc15379b:
16:25:18|WARN|【Server】[upload image] - Pushed
16:25:21|WARN|【Server】[upload image] - jwt-v1.0.0: digest: sha256:1c165fdc9dbd311692000812771e39c97397dee747001887b032ad127abe05c5 size: 1583
16:25:21|INFO|【Server】[upload image] - Success
16:25:21|INFO|publish Host: 172.27.94.126【docker】 End
16:25:21|INFO|Deploy Version:20201214162449
16:25:21|INFO|local publish folder ==> file://G:\SvnProject\HCIMS_V3.1_Online\Project\Services\SwsXytxMsServices\branches\v1.0\NetServices.Jwt\bin\Release\deploy_docker\docker-ubuntu-20.04#link105
16:25:21|INFO|-----------------Deploy End,[Total]:1,[Fail]:0-----------------
最後に、Tencent CloudPlatformのプライベートミラーウェアハウスを確認します。表示情報は次のとおりです。
以上がミラーリングプロセスの完全なリリースと構築です。お役に立てれば幸いです。また、ツールの作成者の提案や交換に心から感謝します。