dotnetcore安装swagger并部署到docker中

1.dotnet core安装

2.dotnet 运行

dotnet build

dotnet new

dotnet new –help

dotnet run

dotnet add package

3.

引用log4net

引用swagger

dotnet add Swashbuckle.AspNetCore(注意这里有个坑,引用的名字一定要带core的,否则会引用上一个4.6版本的swagger,但是无法使用)

vscode中使用如下插件userdefinedsnippets自动生成注释

加入这一条就能生成xml文件

true

有时会需要做一些额外的工作http://wmpratt.com/dotnet-publish-where-are-my-xml-docs/

configureService中加入public void Configure(IApplicationBuilder app)

public void ConfigureServices(IServiceCollection services)

{

services.AddDbContext<TodoContext>(opt => opt.UseInMemoryDatabase("TodoList"));

services.AddMvc();




// Register the Swagger generator, defining one or more Swagger documents

services.AddSwaggerGen(c =>

{

    c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });

});

}

startup的configure中加入

using Swashbuckle.AspNetCore.Swagger;

public void Configure(IApplicationBuilder app)

{

// Enable middleware to serve generated Swagger as a JSON endpoint.

app.UseSwagger();




// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), specifying the Swagger JSON endpoint.

app.UseSwaggerUI(c =>

{

    c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");

});




app.UseMvc();

}

vs所有都是通过配置来实现

dockerfile

部署asp.net core 到 docker

https://github.com/dotnet/dotnet-docker

docker版本升级是一个坑,直接安装的版本很旧

注意,官方需要升级到17.06

yum update

vim /etc/yum.repos.d/docker.repo

//添加以下内容

[dockerrepo]

name=Docker Repository

baseurl=https://yum.dockerproject.org/repo/main/centos/7/

enabled=1

gpgcheck=1

gpgkey=https://yum.dockerproject.org/gpg

yum install docker-engine -y

安装完之后出错,查日志提示

3月 10 23:07:04 centos1 systemd[1]: Unit docker.service entered failed state.

3月 10 23:07:04 centos1 systemd[1]: docker.service failed.

3月 10 23:07:04 centos1 systemd[1]: docker.service holdoff time over, scheduling restart.

3月 10 23:07:04 centos1 systemd[1]: start request repeated too quickly for docker.service

3月 10 23:07:04 centos1 systemd[1]: Failed to start Docker Application Container Engine.

====================================

这个可以通过如下方式解决:

查看文件系统 /etc/docker/daemon.json 有没有这个文件,没有测创建它包括二级目录 docker

在daemon.json文件中输入以下内容:

{ “storage-driver”: “devicemapper” }

如果daemon.json文件包含格式不正确的JSON,Docker将无法启动。

======================================

docker run -it –rm -p 5000:80 –name aspnetcore_sample aspnetapp

(对外端口:容器中服务的端口)

docker ps查看所有运行的镜像

docker stat进行docker监控