在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
首先盗图一张 2.创建基于Asp.net Core的MVC项目运行解决方案,验证代码没有问题,然后将代码迁入Github 3.添加Docker支持项目-->添加-->Docker 支持 提示框选择【Linux】,点击确定 系统会自动添加相应的Dockerfile文件和docker-compose文件 此处使用默认的Dockerfile,仅修改端口号,该端口号需要跟shell文件对应 FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
修改Dockerfile文件的属性 向项目中添加setup.sh文件(之后的Jenkins会用到,此处与代码并无关系)
文件中的内容如下: image_version=`date +%Y%m%d%H%M`;
echo $image_version;
# cd Jenkins2Docker
git pull --rebase origin master;
docker stop jenkins2docker;
docker rm jenkins2docker;
docker build -t jenkins2docker:$image_version .;
docker images;
docker run -p 10001:80 -d --name jenkins2docker jenkins2docker:$image_version;
# -v ~/docker-data/house-web/appsettings.json:/app/appsettings.json -v ~/docker-data/house-web/NLogFile/:/app/NLogFile --restart=always
docker logs jenkins2docker;
#删除build过程中产生的镜像 #docker image prune -a -f
docker rmi $(docker images -f "dangling=true" -q)
完成以上操作后,将代码迁入Github。 此处需要注意的是:
4.配置Jenkins4.1新建一个“自由风格的软件项目”4.2设置General信息4.3配置源码信息4.4构建触发器(H/2表示2分钟做一次查询) 4.5设置构建环境4.6构建选择shell4.7保存点击【应用】-->【保存】 页面跳转后,点击【立即构建】(此处不点击,2分钟内也会自动构建) 4.8查看构建结果如图显示了5次构建,头三次的红色表示构建失败,4、5次的蓝色表示构建成功 5.验证结果5.1查看镜像镜像到Tag是在shell文件中设置的,由时间字符串拼接而成,可以看到.net core生成的镜像还是很小的,毕竟包含了一个253M的run-time。 5.2查看容器
IMAGE:此处看到容器构建依赖的镜像,确实是我们刚刚生成的镜像。 STATUS:如果status的状态不是Up,可以通过Jenkins构建的后台查看是否构建出现问题。 PORTS:10001->80,80是我们在dockerfile中expose到端口,10001是容器创建时映射到服务器到端口。 5.3查看网址
6.写在最后不知是不是shell文件写的有问题,亦或是我该改设置dockerfile生成路径? 代码迁入时需要修改下Dockerfile的路径,即从Jenkins2Docker内改到上一级的目录。 有明白的朋友可以留个言
7.参考https://cloud.tencent.com/developer/news/223449 https://www.cnblogs.com/sunshine-wy/p/9860599.html https://www.cnblogs.com/TomGui/archive/2017/04/06/6673084.html
8.常见错误8.1.Dockerfile编译报错Failed to build: Error parsing reference: “microsoft/dotnet:2.1-runtime AS base” is not a valid repository/tag 解决方法: 该问题出现的原因是docker的版本过低,具体如下 FROM microsoft/aspnetcore-build:2.0 AS buildenv Error parsing reference
8.2报错:镜像被多个repositories引用Error when deleting images - image is referenced in multiple repositoriesdocker rmi -f <IMAGE_ID>
参考:https://github.com/portainer/portainer/issues/497
8.3删除虚挂镜像docker rmi $(docker images -f "dangling=true" -q)
参考:http://www.cnblogs.com/stulzq/p/8962388.html
|
请发表评论