把项目打包成 docker 镜像,并发布到腾讯云?DockerHub!
所以到底是发布到哪?
国产云服务厂商里,我个人还是很喜欢腾讯云的产品,之前用 docker 镜像也是发到了腾讯云的个人镜像服务里的。
但是,出于国内政策的一些因素,现在好像所有的国内云都不支持个人镜像服务了,我还专门查了一下别的镜像云服务,比如网易数帆都有明文规定,不再支持个人镜像服务了
哎,限制个人用户这点可能不太好啊。。。
因为这个因素,我还是把镜像发到了 dockerhub,虽然慢了一些,但目前也没啥别的选择了~,当然还可以结合 git 搭建一个 Jenkins 服务来替代,这里就不聊那些了!
打包镜像
dotnet 发展到 dotnet core 时代,已经原生支持跨平台了,而容器技术是实现跨平台部署的一种重要手段,这里就简单演示给一个现有系统打包上次的流程。
安装 DockerDesktop
因为绝大部分的 dotnet 开发者的开发平台都是 Windows 平台,当然即便是 linux 和 macOS,现在也可以使用 DockerDesktop 了
对了,在 windows 环境下使用 dockerdesktop,需要开启 hyper-v 服务。
傻瓜式的安装完成后,就可以进行打包部署的流程了
创建容器支持
在使用 vs2022(2019)创建项目的时候,可以默认添加 docker 服务,如果开始的时候没有添加也没关系,后续创建 dockerfile 也不费力。右击项目文件-->添加-->Docker 支持,就可以了。
添加支持之后,项目会自动帮我们添加 dockerfile,并自动进行一次容器拉取服务,把项目依赖的包都拉去下来
这里如果开着 dockerdesktop 的话,会看到 IDE 帮我们拉取下来的依赖镜像和刚刚生成的镜像。
到这里,为了让项目成功在容器里跑起来,还需要调整一些东西
dockerfile 要和项目解决文件在同一目录
dockerfile 里要增加了处理 ssl 协议相关的语句,不然 sql 服务在容器里会出现无法连接的情况
构建镜像
进入到 dockerfile 的安装路径,执行
完成打包后可以启动 DockerDesktop 界面里看到容器运行情况,也可以通过这个命令来查看。
启动命令如下
测试可以正常访问之后,就可以把镜像推到镜像仓库了!
推到镜像仓库
注册个人账号
不用多说了~,传送门
推送镜像
镜像打包好后,就可以准备通过 CLI 把镜像推送到仓库了。推送之前,要先给刚打包好的镜像设定一个远程版本号,关于这点,官网上也有详细介绍
这一点,不光是 dockerhub 这样要求,之前国内的个人镜像仓库可用的时候,也是有同样要求的。
对了,推送之前,先登录一下个人账号,我是直接在 dockersdesktop 上登录了,所以在 CLI 环境里就不用再执行 docker login 命令了,如果没有登录,则需要通过命令行登陆一下。
推送完成后,登录 dockerhub 的个人账号查看,可以看到刚刚推送上来的镜像
好了,基本就是这样了。
15 天的日更暂时也告一段落了,因为报名参加了后边的签约作者活动。也正好接这个机会休整一番,其实第二季的时候也参加了,结果后期乏力,输出的内容不太好,副本没有刷成功。希望这次可以成功晋级,冲啊~~
版权声明: 本文为 InfoQ 作者【为自己带盐】的原创文章。
原文链接:【http://xie.infoq.cn/article/b08bc9d06d1f85032493b7444】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论