windows下的asp.net core开发及docker下的发布
参照下面,搭建好开发环境、Docker及配置好Docker加速器
http://www.cnblogs.com/windchen/p/6257846.html
参照下面,将windows共享目录挂载到Ubuntu虚拟机
http://www.cnblogs.com/windchen/p/6236299.html
假设:D:\projects --> /mnt/projects
参照下面,在Ubuntu上安装好docker compose
http://www.cnblogs.com/windchen/p/6239494.html
下载asp.net core运行镜像和构建发布镜像
docker pull microsoft/aspnetcore
docker pull microsoft/aspnetcore-build
docker pull nginx
建立asp.net core网站
打开windows命令行工具,建立目录
mkdir D:\projects\first-web\src
cd D:\projects\first-web\src
dotnet new -t web
修改网站Url
打开Program.cs文件,添加红色字部分
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("http://*:5000")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build(); host.Run();
}
利用docker compose建立build、publish环境
登入Ubuntu,进入Project目录,建立docker-compose.yml文件
cd /mnt/projects/first-web
mkdir -p docker/build
vi docker/build/docker-compose.yml
输入内容:
version: "" services:
build-env:
build: ../../src
container_name: build-env
建立script:
cd /mnt/projects/first-web
mkdir scripts
vi scripts/build-publish.sh
chmod +x scripts/build-publish.sh
输入如下内容:
basepath=$(cd `dirname $`; pwd)
echo "goto build folder"
cd $basepath/../docker/build
echo "run build"
docker-compose build
echo "run down"
docker-compose down
echo "run up"
docker-compose up
echo "copy published files"
docker cp build-env:/publish/bin $basepath/../
建立生成build镜像的Dockerfile
cd /mnt/projects/first-web
vi src/Dockerfile
输入内容:
FROM microsoft/aspnetcore-build
WORKDIR /build COPY project.json .
RUN dotnet restore COPY . .
RUN dotnet publish -o /publish/bin/ -c Release
现在执行build-publish.sh就可以将code build并发布到Project的bin目录了
cd /mnt/projects/first-web
./scripts/build-publish.sh
ls bin/
利用docker compose建立proxy和web环境
建立生成web环境的Dockerfile
cd /mnt/projects/first-web
vi bin/Dockerfile
输入内容:
FROM microsoft/aspnetcore WORKDIR /web COPY . .
建立生成proxy镜像的Dockerfile
cd /mnt/projects/first-web
mkdir -p docker/nginx
vi docker/nginx/Dockerfile
输入如下内容:
FROM nginx COPY my.nginx.conf /etc/nginx/conf.d/default.conf EXPOSE
在上面相同目录建立my.nginx.conf,输入
server {
listen ;
location /{
proxy_pass http://web:5000;
}
}
建立启动container的compose文件
cd /mnt/projects/first-web
vi docker/docker-compose.yml
输入内容:
version: "" services:
web:
build: ../bin
container_name: web
entrypoint: "dotnet build.dll"
proxy:
build: ./nginx
container_name: proxy
ports:
- :
links:
- web
tty: true
建立启动nginx和web的shell脚本
cd /mnt/projects/first-web
vi scripts/start-web.sh
chmod +x scripts/start-web.sh
输入如下内容:
basepath=$(cd `dirname $`; pwd)
echo "goto build folder"
cd $basepath/../docker/
echo "run build"
docker-compose build
echo "run down"
docker-compose down
echo "run up"
docker-compose up -d
至此准备工作已经完成,可以启动proxy跟web了
cd /mnt/projects/first-web
./start-web.sh
查看网站是否正常运行:
curl http://localhost
windows下的asp.net core开发及docker下的发布的更多相关文章
- windows/Linux下设置ASP.Net Core开发环境并部署应用
10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...
- 10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用
创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 来创建,其优点是简单方便,但需要安装最新版本Visual Studio 2017 prev ...
- Windows下构建ASP.NET Core+Code First+Docker
背景介绍 本文将会示范如何在Windows系统下基于ASP.NET Core构建跨平台服务,并通过Docker容器运行发布. 首先说一下为什么选择这一套组合: 我本人和我们Code4Thought团队 ...
- 在Ubuntu下搭建ASP.NET 5开发环境
在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...
- 在Mac下创建ASP.NET Core Web API
在Mac下创建ASP.NET Core Web API 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: 官方文档涉 ...
- ASP.NET Core开发-后台任务利器Hangfire使用
ASP.NET Core开发系列之后台任务利器Hangfire 使用. Hangfire 是一款强大的.NET开源后台任务利器,无需Windows服务/任务计划程序. 可以使用于ASP.NET 应用也 ...
- ASP.Net Core开发(踩坑)指南
ASP.NET与ASP.NET Core很类似,但它们之间存在一些细微区别以及ASP.NET Core中新增特性的使用方法,在此之前也写过一篇简单的对比文章ASP.NET MVC应用迁移到ASP.NE ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...
随机推荐
- JS通过使用PDFJS实现基于文件流的预览功能
需求: 使用JS实现PDF文件预览功能 备选方案: 使用ViewerJS,官网 http://viewerjs.org/ 使用PDFJS,官网 https://mozilla.github.io/ ...
- tween.js下面的轮播(饿了么点餐的那种效果)
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 约瑟夫环(java)
问题描述:n个人围成一圈,每隔k个杀死一个,问最后的幸存者的编号 假设标号是0 ~ n-1,幸存者是f[n] 1.特殊情况:f[1]=0 2.一般情况:f[n] = (f[n-1]+k)%n 游戏开始 ...
- cocos creator 小记
一个游戏场景有若干个节点组成,这些包括渲染节点,UI节点. 这里弱化了Layer层的概念. 一个游戏由若干个场景组件. 每个节点由若干个组件和若干子节点组成. 例如UI节点中的 按钮节点.子节点有 ...
- COM技术开发(一)
COM :基本的接口(IX,IY), 组件的实现(CA),以及对组件的调用 #include "pch.h" #include <iostream> #include ...
- MFC中EDIT控件实现换行
\n是C下的回撤换行.在MFC下得用\r\n.
- Calling method 'get' is not valid without an active transaction
在进行使用注解来配置Spring和Hibernate的整合的时候, 遇到了这个问题, 它的意思是说在调用'get'方法的时候,没有活动的事务. 原因分析: Hibernate强制要求在进行数据库操作的 ...
- CentOS7.6 静态IP配置
1:选中安装好的虚拟机,点击“编辑”,然后选择“虚拟网络编辑器(N…)”,如下图所示: 2:选择桥接模式,在桥接到指定的本地网卡即可."确定"保存 3:选中虚拟机,右击虚拟机,选择 ...
- 从零开始--系统深入学习Android
http://www.cnblogs.com/tianjian/category/354587.html
- 通过洛谷P2639看01背包
题目描述 Bessie像她的诸多姊妹一样,因为从Farmer John的草地吃了太多美味的草而长出了太多的赘肉.所以FJ将她置于一个及其严格的节食计划之中.她每天不能吃多过H ( <= H &l ...