码迷,mamicode.com
首页 > Web开发 > 详细

netcore3.1+jenkins+docker在ubantu中部署

时间:2020-02-22 09:28:45      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:结果   虚拟机   date   dev   release   rest   脚本   this   spn   

最近由于疫情给了不少时间,之前断断续续做过很多关乎docker的学习,一直敲各种命令,觉得太麻烦了,没继续深入下去,这段时间又琢磨了一阵子,说一说遇到的一些问题,记录一下。ubantu是安装在台式机中的,总觉得虚拟机太麻烦,直接把台式机的机械硬盘电源线拔了,把系统安装到了120g的固态硬盘上,平时闲置的也算做了一些贡献,ubantu上有一些小游戏挺好玩,扯远了。。。

安装环境就不说了,总体思路就是代码传递到码云,由jenkins下载最新代码,执行dockerfile,运行容器。开始是做的jenkins和码云的自动触发,上一篇文章简单写了写,主要涉及到jenkins权限和码云接口调用

http://用户名:用户token@jenkins外网域名:端口/job/项目名称/build?token=webhook密码

dockerfile要放到项目根目录,涉及到要拷贝编译项目文件,长这样

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN apt-get clean
RUN apt-get update
RUN apt-get install -y --no-install-recommends libgdiplus libc6-dev
RUN apt-get -y install fonts-wqy-zenhei && apt-get clean &&  fc-cache -fv
WORKDIR /app
EXPOSE 8238

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ./ /src
RUN dotnet restore "./FruitsCMS.Mvc/FruitsCMS.Mvc.csproj"
COPY . .
WORKDIR "/src/FruitsCMS.Mvc/."
RUN dotnet build "FruitsCMS.Mvc.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "FruitsCMS.Mvc.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "FruitsCMS.Mvc.dll"]

遇到一个问题,就是跑起来容易,怎么也访问不到,原来localhost只能在容器内容访问,所以hosting.json得写成这样

{
  "urls": "http://*:8238;"
}

再来贴一下jenkins的构建脚本

# 切换到源码目录,对应在jenkins-home的workspace下面
cd ~/workspace/FruitsCMS;
image_version=`date +%Y%m%d%H%M`;
echo $image_version;
# 停止之前的docker container
docker stop fruits_cms;
# 删除这个container
docker rm fruits_cms;
# build镜像并且打上tag
docker build -t fruits_cms:$image_version .;
docker images;
# 把刚刚build出来的镜像跑起来
docker run -p 8082:8238 -v fruitscms-log-vol:/app/LogFiles -v fruitscms-resource-vol:/app/wwwroot/Resource/ -e TZ=Asia/Shanghai --restart=always --name fruits_cms -d fruits_cms:$image_version;
docker logs fruits_cms;

这个地方涉及到资源文件夹要映射到宿主机目录,看了半天文件夹挂载,结果是两个意思,应该是使用卷,参考链接:https://www.cnblogs.com/edisonchou/p/docker_volumes_introduction.html,第一次时候需要注释停止容器和删除容器操作,因为这个时候还没有容器在跑,跑起来再放开这个注释,有问题及时留言了。。。

netcore3.1+jenkins+docker在ubantu中部署

标签:结果   虚拟机   date   dev   release   rest   脚本   this   spn   

原文地址:https://www.cnblogs.com/wangbg/p/12344020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!