Visual Studio发布 Docker 镜像

发布于:2022-12-18 ⋅ 阅读:(382) ⋅ 点赞:(0)

Visual Studio 内搭建Docker支持

创建项目

1.搭建一个ASP.NET Core Web API 项目,其他类型项目原理类似。

在这里插入图片描述

2.配置新项目,项目名称为DockerDemo

在这里插入图片描述

*3. 配置信息勾选启用Docker,并选择Docker OS 环境为 Linux.(根据实际情况选择)

在这里插入图片描述

4.完成配置后,会发现生成的项目文件中有一个DockerFile 文件,代表Docker支持已经添加

在这里插入图片描述

5.添加测试代码

首先我们添加一个 DemoController 类并添加测试代码

    [ApiController]
    [Route("Demo")]
    public class DemoController : ControllerBase
    {
        [HttpGet]
        [Route("Get")]
        public string Get()
        {
            string model = "{\"code\":\"0\",\"error\":\"" + "0" + "\",\"data\":\"" + _response + "\"}";
            return model;
        }
        
        private static string _response;
        public static void ResKey(string key)
        {
            _response = key;
        }
    }

之后我们开始编辑appsettings.json 文件 加入测试变量

 "Demo": {
    "Response": "DockerDemo"
  }

最后我们在 Program.cs 代码内加入

DemoController.ResKey( builder.Configuration.GetValue<string>("Demo:Response"));

至此测试需要的代码基本完成。

在这里插入图片描述

6.launchSettings.json 配置参数解释

{
  "iisSettings": {
    "windowsAuthentication": false,//是否启用Windows身份验证
    "anonymousAuthentication": true,//是否启用匿名身份验证
    "iisExpress": {
      "applicationUrl": "http://localhost:53445",//应用启动的Url路径。
      "sslPort": 0  //启用SSL的端口
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "Project",
      "launchBrowser": true, //是否在浏览器中启动
      "environmentVariables": { //将环境变量设置为键/值对
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

我们发现在 launchSettings.json 中存在两个 applicationUrl 。 其中IISExpress 对应的启动方式 为 IIS Express 。 profiles 对应的为项目本身。

对应关系如下图:

在这里插入图片描述

7. Docker镜像生成

右击项目文件里面的DockerFile文件,选择生成Docker镜像。等待命令执行结束。

在这里插入图片描述

当VS镜像生成结束后,可以在Docker -Images 内 看到刚刚最新生成的镜像文件。

在这里插入图片描述

使用VSCode 进行镜像文件的配置以及发布

1.打标签

docker tag dockerdemo:latest dockerdemo:1.0.0

在CMD 中执行 docker tag 命令,上述语句意思为将最新的 dockerdemo 镜像 标记为 dockerdemo:1.0.0,在CMD中执行完成后可以在Docker-Images 中看到多出一个 dockerdemo:1.0.0 的镜像。

在这里插入图片描述

2.VsCode 安装 Docker插件

在VsCode扩展中搜索Docker插件并安装,安装完成后,VSCode左侧会显示一个Docker图标。

在这里插入图片描述

点击Docker扩展图标发现和Docker本身显示的内容差距不大。

在这里插入图片描述

3. docker-compose.yml 编写

version: '3.4' //compose版本

services:
  dockerservices:
    image: dockerdemo:1.0.0 //镜像版本
    restart: always //重启
    container_name: dockerdemo
    ports:
      - 8089:80 //端口映射
    volumes:
      - ./appsettings.json:/app/appsettings.jsonimage.png //文件映射

在VsCode中编写yml 文件。

在这里插入图片描述

复制appsettings.json文件。

在这里插入图片描述

4.发布镜像

在 docker-compose.yml 文件内右击,选择compose up ,等待命令执行完成。

在这里插入图片描述

命令执行完成后在Docker 内可以看到 dockerdemo 正在运行。

在这里插入图片描述

5.测试发布的服务

在 postman内访问我们之前编写的测试接口,发现能够正常返回。测试通过。

在这里插入图片描述
修改Vscode内的 appsetting.json文件。
在这里插入图片描述

在 docker-compose.yml 文件内右击,选择compose restart ,等待命令执行完成,重启服务。

在这里插入图片描述

再次通过 postman内访问我们之前编写的测试接口,发现能够正常返回,并且参数已经发生改变。测试通过。

在这里插入图片描述

以上是Docker镜像发布的基本流程。

本文含有隐藏内容,请 开通VIP 后查看