回去目录

率先要清楚本文是讲dotnetcore项目在生育和测试环境布置的,那在过去的frameworks项目里,大家得以因此安装web.config的环境变量,然后再公布时钦赐具体的变量,去完毕生产环境和测试环境的揭橥,发布之后,逐个环境有自身的安插文件,frameworks会更新环境把web.config举办合并,而在dotnetcore项目里,这种办法不适用了,所以须求在此地再下结论一下了。

环境表明

  1. jenkins自动布置
  2. docker,docker-swarm集群
  3. dotnet core api项目

要促功用益

  1. 将调试,测试,生产等环境的计划消息超前布局好,不必要上线后在去修改它,完成自动化公布和安顿
  2. dotnet
    core项目布署自身的appsettings.development.json和appsettings.production.json文件
  3. 运维容器前需求安装环境变量,dockerfile打到镜像也行,docker
    service运行时加载也可以

贯彻布置

jenkins调用sh脚本添加环境参数

#!/bin/sh
set -xe
cd ${WORKSPACE}/deploy/
/bin/bash publish.sh
/bin/bash build.sh "Production"

build.sh脚本添加了描述环境的输入参数

#!/bin/sh
set -ex
export IMAGE_NAME=svt/sms
export Registry_Url="ciregistry.i-counting.cn:8443"
#输入参数source,目前支持Development外测和Production生产环境两个值
docker build --no-cache --pull -t $IMAGE_NAME --build-arg source=$1 ./
docker tag $IMAGE_NAME $Registry_Url/$IMAGE_NAME
docker push $Registry_Url/$IMAGE_NAME

Dockerfile里添加了安装环境变量的代码

FROM microsoft/aspnetcore:2.0
ARG source
run echo $source
COPY sources.list /etc/apt/sources.list
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN apt-get update && apt-get -y install libgdiplus && apt-get clean
ENV ASPNETCORE_ENVIRONMENT=$source
WORKDIR /app
EXPOSE 80
COPY obj/Docker/publish .
ENTRYPOINT ["dotnet", "Validate.dll"]

aspnetcore的花色里添加了Development和Production两种配备的appsettings.json

图片 1图片 2

终极就是代码获取配置时,一定要增进环境参数

config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
  .AddJsonFile(file, optional: true, reloadOnChange: true)
  .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
  .Build();

好了,明日大家主要完毕的是相比较实用的按环境去安插项目标法子!

指望本作品对各位有所资助!

 回到目录

相关文章

网站地图xml地图