欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Docker + .NET Core(三)-两种发布方式

程序员文章站 2022-06-26 19:37:18
第一种,自己手写dockerfile发布,上传至hubDocker 1. 正常发布到文件夹中,发布文件上传至linux机器上。如 /www/app 2. 将Dockerfile文件也复制到同目录 。/www/app 3. 输入 ,构建一个demo名字的镜像。这个时候就会构建镜像,输入 可以查看当刚刚 ......

第一种,自己手写dockerfile发布,上传至hubdocker

  1. 正常发布到文件夹中,发布文件上传至linux机器上。如 /www/app
  2. 将dockerfile文件也复制到同目录 。/www/app
  3. 输入 docker image build -t demo .,构建一个demo名字的镜像。这个时候就会构建镜像,输入docker images可以查看当刚刚生成的镜像。也可以看到下面会用到的imageid
  4. 输入docker run --name=demo -d -p 8000:80 -v /www/app:/app demo
  5. 这时候访问ip:8000就可以了,输入docker ps可以看到正在运行的容器的信息。
  6. 上传镜像到hubdocker,输入docker login然后登录。
  7. 打标签docker tag imageid hanfan/demo:1.0 推送docker push hanfan/demo:1.0
  8. 其他人就可以docker pull hanfan/demo:1.0拉取运行镜像了。
  9. 使用nginx反向代理
  10. 搞定

第二种,使用vs2017或者vs2019(其他的没试过)

  1. 项目点右键添加docker支持,选择liunx,也会生成一个dockerfile文件,这个文件的坑更加项目自己去排坑
  2. 点击解决方案添加docker-compose项目
  3. 运行,这个时候会生成一个镜像。输入docker images可以查看。
  4. 镜像都生成好了,就上第一种一样的操作了
  5. 搞定

写一个自己的dockerfile

from microsoft/dotnet:2.1-aspnetcore-runtime as base
workdir /app
copy . .
run ln -s /lib/x86_64-linux-gnu/libdl-2.24.so /lib/x86_64-linux-gnu/libdl.so 
run echo "deb http://mirrors.aliyun.com/debian wheezy main contrib non-free deb-src http://mirrors.aliyun.com/debian wheezy main contrib non-free deb http://mirrors.aliyun.com/debian wheezy-updates main contrib non-free deb-src http://mirrors.aliyun.com/debian wheezy-updates main contrib non-free deb http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-free deb-src http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-free" > /etc/apt/sources.list
expose 80
run apt-get update
run apt-get install libgdiplus -y && ln -s libgdiplus.so gdiplus.dll

from base as final
workdir /app 
entrypoint ["dotnet", "xxxxx.dll"]