AntDeployツールは、ワンクリックで画像をTencent CloudDockerプライベートミラーウェアハウスにリリースします

AntDeployツール機能の紹介

  • Dockerワンクリックデプロイメントをサポート(netcoreをサポート)
  • IISワンクリック展開をサポート(ネットコアとフレームワークをサポート)
  • Windowsサービスのワンクリック展開をサポート(ネットコアとフレームワークをサポート)
  • Linuxサービスのワンクリックデプロイメントをサポート(netcoreをサポート)
  • (インクリメンタルリリースのサポート)(ワンクリックロールバックのサポート)(イグニッションのサポート)(特定のファイルリリースの選択のサポート)(リリースレコードの表示のサポート)
  • Visual Studioからの独立した使用をサポート(クロスプラットフォームサポートWindowsシステムおよびMacシステム)
  • サポートエージェントのバッチ更新

リソースアドレス:

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

 予防:

  1. ローカルに構成されたVMが外部ネットワークにアクセスしてホストと通信できることを確認し、ネットワークツールを確認します=》#sudo apt install net-tools
  2. vm install docker =》#sudo apt update&sudo apt installdocker.ioを確認してください
  3. vm install unzip =》#sudo apt installunzipを確認してください
  4. vsコードインストールプラグイン(オプションの構成:Remote-WSL、Docker)、ssh =》#[email protected]プロンプトを介してvmに接続しますパスワードの入力

 国内のミラーソースを構成するためのvminstall docker:

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を再起動して再度テストできます。

再起動コマンド: 

  1. リブート 
  2. shutdown-rはすぐに再起動します
  3. shutdown -r 1010分後の自動再起動
  4. shutdown -r 20:3520:35に再起動

シャットダウンコマンド: 

  1. 停止はすぐにシャットダウンします(通常は-pを追加して電源をオフにします)
  2. 電源オフはすぐにシャットダウンします 
  3. shutdown-hすぐにシャットダウンします
  4. shutdown -h 1010分後の自動シャットダウン 

    shutdownコマンドでshutdownが設定されている場合は、shutdown-cコマンドを使用してシャットダウンをキャンセルできます。

2. AntDeploy画像の作成:

2 | 1 .net5関連のミラーを準備します。中国でのミラーのダウンロードは、ネットワーク上の理由により失敗する可能性があります。

注目のリポジトリ

 必要に応じてミラーをプルするだけで、ここでのデモには次のミラーのみが必要です。.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のプライベートミラーウェアハウスを確認します。表示情報は次のとおりです。

以上がミラーリングプロセスの完全なリリースと構築です。お役に立てれば幸いです。また、ツールの作成者の提案や交換に心から感謝します

おすすめ

転載: blog.csdn.net/ChaITSimpleLove/article/details/110647146