• 阿里云部署 (三) 部署net5


    上篇用docker + nginx 部署静态站点

    这次部署.net5

    1. 把本地的 net5项目发布,拷到linux 服务器上

    2.新建Dockerfile: 注意 第一行不要 跟 As base 之类的

    FROM mcr.microsoft.com/dotnet/aspnet:5.0
    WORKDIR /app
    EXPOSE 80
    EXPOSE 443
    

    WORKDIR /app
    ENTRYPOINT ["dotnet", "Backend.dll","--urls","http://*:80;","debug"]

    docker build -t net5 .

    这里带上debug 参数,是给应用一个标志,说这是要使用https 了,要用证书了。program 的main 方法要做如下添加。

    if (Program.args.Contains("debug"))
                          {
                               webBuilder.UseKestrel(ConfigHttpsRyr());
                               webBuilder.UseUrls(Program.args);
                          }
    -------------------------------------------------------------
     private static Action<KestrelServerOptions> ConfigHttpsRyr()
            {
                return x =>
                {
    
                </span><span style="color: #0000ff;">var</span> pfxFile = <span style="color: #800000;">"</span><span style="color: #800000;">5203942321_app.ryrkj.com.pfx</span><span style="color: #800000;">"</span><span style="color: #000000;">;
                Log.Logger.Information(</span><span style="color: #800000;">"</span><span style="color: #800000;">pfx:</span><span style="color: #800000;">"</span><span style="color: #000000;">, pfxFile);
                </span><span style="color: #008000;">//</span><span style="color: #008000;">password 填写申请的密钥</span>
                <span style="color: #0000ff;">var</span> certificate = <span style="color: #0000ff;">new</span> X509Certificate2(pfxFile, <span style="color: #800000;">"</span><span style="color: #800000;">.......</span><span style="color: #800000;">"</span><span style="color: #000000;">);
                x.ConfigureHttpsDefaults(c </span>=&gt; c.ServerCertificate =<span style="color: #000000;"> certificate);
               
            };
        }</span></pre>
    

    3. 在linux 上执行: publish 是第一步发布的文件夹名

    docker run  -it  --name net5 -p 5001:443 -v /publish:/app -d --net mynet net5

    现在可以访问站点了。

    4.如果有错误服务器可能这个容器会停止。 docker logs net5 查看原因。

    5.如果是数据库链接字符串有问题,去app..product.setting.json 中修改:

    "BackendContext": "Server=mysqlserver;Database=AAA;User ID=sa;Password=xxxx;Trusted_Connection=false;"

    然后新建SQL server 容器:

    docker run -d -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=xxxx' -p 1433:1433 -d --name mysqlserver --net mynet mcr.microsoft.com/mssql/server:2017-latest

    6. docker start net5  看看起来了吧。

    7.  更新程序之后,需要在linux 端     docker  restart net

    8.总结脚本:

    docker network ls
    

    docker network create --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

    docker run --name mynginx -p 80:80 -p 443:443 -d --net mynet -v /nginxdata:/usr/share/nginx -v /ngnixconf:/etc/nginx/conf.d2/ nginx

    docker run -d -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=xxxx' -p 1433:1433 -d --name mysqlserver --net mynet mcr.microsoft.com/mssql/server:2017-latest

    cat << EOF > Dockerfile
    > FROM mcr.microsoft.com/dotnet/aspnet:5.0
    > WORKDIR /app
    > EXPOSE 80
    > EXPOSE 443
    >
    > WORKDIR /app
    > ENTRYPOINT ["dotnet", "Backend.dll","--urls","http://*:80;https://app.ryrkj.com","debug"]
    > EOF

    docker build net5 .
    docker run -it --name net5 -p 5001:443 -v /publish:/app -d --net mynet net5

    docker exec  net5  cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    气功波(18037675651)
  • 相关阅读:
    BLAS, LAPACK, OpenBLAS, MKL, CBLAS等概念
    Flex +WebService
    JS获取Url参数的通用方法
    错误 1 无法嵌入互操作类型“Microsoft.Office.Interop.Excel.ApplicationClass”。请改用适用的接口
    asp.net网站中添加百度地图功能
    Asp.net最基本的文件上传功能代码
    牛 JQuery视频笔记
    .Net知识点总结(一)
    javascript删除数组中的某个元素-----拓展Array 原型方法
    JavaScript中this
  • 原文地址:https://www.cnblogs.com/qgbo/p/14655886.html
Copyright © 2020-2023  润新知