zoukankan      html  css  js  c++  java
  • centos 7使用docker部署到.net core2.2生产环境

    以下是Dockerfile, 这个比较重要, 直接关系到能不能正确生成image:

    #多阶段构建的第一阶段, 直到一下个From段, 都是在此镜像的基础上进行的操作, AS build表示给这个阶段起个名为build, 这个名在后面的阶段可以使用,
    FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
    WORKDIR /app
    
    COPY . /app
    
    WORKDIR /app/<ProjectName>

    #以下这一行安装是为了解决我项目里的一个问题: System.DllNotFoundException: Unable to load shared library 'libdl' or one of its dependencies, https://github.com/dotnet/dotnet-docker/issues/618, 对别的项目也许可以忽略 RUN apt-get update && apt-get install -y --allow-unauthenticated libc6-dev libgdiplus libx11-dev && rm -rf /var/lib/apt/lists/* RUN dotnet restore #发布到当前目录的out文件夹下 RUN dotnet publish -c Release -o out FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS runtime WORKDIR /app #--from=build就是上一个构建阶段. 这行表示把上个阶段的out文件夹下内容都copy到当前目录下 COPY --from=build /app/<ProjectName>/out ./ ENTRYPOINT ["dotnet", "<DllName>.dll"] #docker build -t <ImageName> . #docker run -d -p 62301:62301 -v "$(pwd)"/logs:/app/logs <ImageName> --urls="http://*:62301"

    Dockerfile copy到centos上项目所在地, 然后跑:

    docker build -t <ImageName> .

    别忘了结尾的点号 "."

    然后运行Image, 我是使用的62301端口跑站点, 日志文件夹使用一个Bind mounts放在项目所在目录下了:

    docker run -d -p 62301:62301 -v "$(pwd)"/logs:/app/logs <ImageName> --urls="http://*:62301"

    注意这样跑起来的站点是只支持http的, 因为没有证书.

    然而我本地起的localhost的站点是只能https访问, http也会强制重定向到https, 使用的开发证书.

  • 相关阅读:
    ES6之模块化
    ES6之展开运算符
    ES6之解构赋值
    ES6之对象的语法糖
    ES6之函数的语法糖
    ES6之模板字符串
    Exchanger详解
    DNS解析过程
    CyclicBarrier详解
    ConuntDownLatch详解
  • 原文地址:https://www.cnblogs.com/lihan829/p/11146603.html
Copyright © 2011-2022 走看看