参照下面,搭建好开发环境、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下的发布的更多相关文章

  1. windows/Linux下设置ASP.Net Core开发环境并部署应用

    10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...

  2. 10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用

    创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 来创建,其优点是简单方便,但需要安装最新版本Visual Studio 2017 prev ...

  3. Windows下构建ASP.NET Core+Code First+Docker

    背景介绍 本文将会示范如何在Windows系统下基于ASP.NET Core构建跨平台服务,并通过Docker容器运行发布. 首先说一下为什么选择这一套组合: 我本人和我们Code4Thought团队 ...

  4. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

  5. 在Mac下创建ASP.NET Core Web API

    在Mac下创建ASP.NET Core Web API 这系列文章是参考了.NET Core文档和源码,可能有人要问,直接看官方的英文文档不就可以了吗,为什么还要写这些文章呢? 原因如下: 官方文档涉 ...

  6. ASP.NET Core开发-后台任务利器Hangfire使用

    ASP.NET Core开发系列之后台任务利器Hangfire 使用. Hangfire 是一款强大的.NET开源后台任务利器,无需Windows服务/任务计划程序. 可以使用于ASP.NET 应用也 ...

  7. ASP.Net Core开发(踩坑)指南

    ASP.NET与ASP.NET Core很类似,但它们之间存在一些细微区别以及ASP.NET Core中新增特性的使用方法,在此之前也写过一篇简单的对比文章ASP.NET MVC应用迁移到ASP.NE ...

  8. 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 ...

  9. ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...

随机推荐

  1. 在Servlet中使用@Autowire的方法

    在你调用的Servlet中添加如下代码: public void init(ServletConfig config) { try { super.init(config); SpringBeanAu ...

  2. 生成hprof文件,用MAT进行分析

    生成hprof文件可以在DDMS选中进程点击窗口左上角的"dump hprof file"按钮来直接生成,也可以通过在程序加代码中来生成 代码2: void generateHpr ...

  3. python+selenium(python基础)

    1.编辑器的选择 好刀不误砍柴工,那么我们写代码也需要一个利器,虽然python自带有python shell ,但我们在执行代码的时候,需要开很多窗口,最重要的一点是,代码文件的管理很不方便,笔者推 ...

  4. Sublime Text插件的离线安装-使用htmlprettify美化您的HTML代码

    Sublime Text是广大程序员喜欢的文本编辑器,Jerry觉得它最强大之处在于开放的架构,有丰富的插件为其提供各种各样额外的功能. 作为前端开发人员,经常需要从网上复制粘贴一些代码然后做修改,因 ...

  5. 善用Object.defineProperty巧妙找到修改某个变量的准确代码位置

    我今天的工作又遇到一个难题.前端UI右下角这个按钮被设置为"禁用(disabled)"状态. 这个按钮的可用状态由属性enabled控制.我通过调试发现,一旦下图第88行代码执行完 ...

  6. Halcon学习笔记1

    转:https://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html 机器视觉工程应用主要可划分为硬件和软件两大部分. 硬件:工程应 ...

  7. Linux之用户权限管理

    chmod(更改目录或文件权限) 在linux中,文件的权限分为3中,拥有者,群组,其他人.而chmod则是对权限更改的命令. u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个组,o 表示其 ...

  8. COM技术开发(一)

    COM :基本的接口(IX,IY), 组件的实现(CA),以及对组件的调用 #include "pch.h" #include <iostream> #include ...

  9. const函数的使用

    const知道吗?解释其作用. 1.const 修饰类的成员变量,表示成员常量,不能被修改. 2.const修饰函数承诺在本函数内部不会修改类内的数据成员,不会调用其它非 const 成员函数. 3. ...

  10. [bzoj4899]记忆的轮廓 题解(毒瘤概率dp)

    题目背景 四次死亡轮回后,昴终于到达了贤者之塔,当代贤者夏乌拉一见到昴就上前抱住了昴“师傅!你终于回来了!你有着和师傅一样的魔女的余香,肯定是师傅”.众所周知,大贤者是嫉妒魔女沙提拉的老公,400年前 ...