Skip to content
FROM mcr.microsoft.com/dotnet/sdk:6.0.422 as builder FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster as builder
WORKDIR /app WORKDIR /app
COPY . . COPY . .
RUN dotnet restore && \
RUN dotnet nuget Disable source "nuget.org" && \ dotnet build && \
dotnet nuget add source "http://nuget.cdn.azure.cn/v3/index.json" -n "azure" dotnet publish -c release -r linux-musl-x64 -o /cartservice
# RUN dotnet restore && \
# dotnet build && \
# dotnet publish -c release -r linux-musl-x64 -o /cartservice
RUN dotnet restore cartservice.csproj -r linux-musl-x64
COPY . .
RUN dotnet publish cartservice.csproj -r linux-musl-x64 --self-contained true -p:PublishTrimmed=False -p:TrimMode=Link -c release -o /cartservice --no-restore
# cartservice # cartservice
FROM mcr.microsoft.com/dotnet/runtime-deps:6.0.28-alpine3.18-amd64 FROM alpine:3.8
# RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ # RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \
# wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ # wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \
......
...@@ -16,28 +16,17 @@ using System; ...@@ -16,28 +16,17 @@ using System;
using System.IO; using System.IO;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Net;
using System.Security.Authentication;
using System.Collections.Generic;
using System.Diagnostics;
using Microsoft.AspNetCore.Server.Kestrel.Core;
using Microsoft.AspNetCore.Connections.Features;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using cartservice.cartstore; using cartservice.cartstore;
using cartservice.interfaces; using cartservice.interfaces;
using CommandLine; using CommandLine;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Server.Kestrel.Core;
using System.Net;
using System.Security.Authentication;
using Microsoft.AspNetCore.Connections.Features;
using Grpc.Core; using Grpc.Core;
using OpenTelemetry; using Microsoft.Extensions.Configuration;
using OpenTelemetry.Trace;
using OpenTelemetry.Resources;
using OpenTelemetry.Exporter;
using OpenTelemetry.Instrumentation.AspNetCore;
using OpenTelemetry.Instrumentation.Http;
namespace cartservice namespace cartservice
{ {
...@@ -57,7 +46,6 @@ namespace cartservice ...@@ -57,7 +46,6 @@ namespace cartservice
switch (args[0]) switch (args[0])
{ {
case "start": case "start":
{
Console.WriteLine($"Started as process with id {System.Diagnostics.Process.GetCurrentProcess().Id}"); Console.WriteLine($"Started as process with id {System.Diagnostics.Process.GetCurrentProcess().Id}");
// Set hostname/ip address // Set hostname/ip address
...@@ -85,19 +73,9 @@ namespace cartservice ...@@ -85,19 +73,9 @@ namespace cartservice
port = int.Parse(portStr); port = int.Parse(portStr);
} }
Console.WriteLine($"Trying to start a grpc server at {hostname}:{port}"); Console.WriteLine($"Trying to start a grpc server at {hostname}:{port}");
Console.WriteLine("Insecure mode"); Console.WriteLine("Insecure mode!");
string[] warpperArgs = new string[args.Length + 1]; string[] warpperArgs = new string[args.Length + 1];
args.CopyTo(warpperArgs, 0); args.CopyTo(warpperArgs, 0);
var loggerFactory = LoggerFactory.Create(builder => {
builder.AddConsole()
.SetMinimumLevel(LogLevel.Debug); // 设置日志记录级别为Debug
});
var logger = loggerFactory.CreateLogger<Program>();
logger.LogDebug("Starting application...");
Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder => Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>
{ {
webBuilder.UseStartup<Startup>(); webBuilder.UseStartup<Startup>();
...@@ -112,12 +90,10 @@ namespace cartservice ...@@ -112,12 +90,10 @@ namespace cartservice
// webBuilder.UseUrls($"http://{hostname}:{port}"); // webBuilder.UseUrls($"http://{hostname}:{port}");
}).Build().Run(); }).Build().Run();
break; break;
}
default: default:
{
Console.WriteLine("Invalid command"); Console.WriteLine("Invalid command");
break; break;
}
} }
} }
} }
......
此差异已折叠。
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<UseAppHost>true</UseAppHost> <TargetFramework>netcoreapp3.1</TargetFramework>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<EnableLongPaths>true</EnableLongPaths>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="CommandLineParser" Version="2.6.0" /> <PackageReference Include="CommandLineParser" Version="2.2.1" />
<PackageReference Include="Grpc.AspNetCore" Version="2.60.0" /> <PackageReference Include="Grpc.AspNetCore" Version="2.30.0" />
<PackageReference Include="Grpc.HealthCheck" Version="2.60.0" /> <PackageReference Include="Grpc.HealthCheck" Version="2.30.0" />
<PackageReference Include="Grpc.Net.Client" Version="2.60.0" /> <PackageReference Include="Grpc.Net.Client" Version="2.30.0" />
<PackageReference Include="Grpc.Tools" Version="2.60.0"> <PackageReference Include="Grpc.Tools" Version="2.30.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.0" /> <PackageReference Include="OpenTelemetry.Exporter.Jaeger" Version="0.5.0-beta.2" />
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.6.0" /> <PackageReference Include="OpenTelemetry.Exporter.Zipkin" Version="0.5.0-beta.2" />
<PackageReference Include="OpenTelemetry.Exporter.Jaeger" Version="1.5.0" /> <PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="0.5.0-beta.2" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.6.0" /> <PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="0.5.0-beta.2" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.6.0" /> <PackageReference Include="OpenTelemetry.Instrumentation.Grpc" Version="0.4.0-beta.2" />
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.6.0" /> <PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="0.5.0-beta.2" />
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.6.0" /> <PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="0.5.0-beta.2" />
<PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.0.0-rc9.10" /> <PackageReference Include="StackExchange.Redis" Version="2.1.58" />
<PackageReference Include="StackExchange.Redis" Version="2.6.122" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
......
...@@ -24,8 +24,7 @@ const options = { ...@@ -24,8 +24,7 @@ const options = {
tags: [{key: 'ip', value: process.env.POD_IP}, tags: [{key: 'ip', value: process.env.POD_IP},
{key: 'name', value: process.env.POD_NAME}, {key: 'name', value: process.env.POD_NAME},
{key: 'node_name', value: process.env.NODE_NAME}], // optional {key: 'node_name', value: process.env.NODE_NAME}], // optional
host: process.env.JAEGER_HOST, endpoint: 'http://' + process.env.JAEGER_HOST + ':' + process.env.JAEGER_PORT + '/api/traces',
port: process.env.JAEGER_PORT, // optional
maxPacketSize: 65000 // optional maxPacketSize: 65000 // optional
} }
......
...@@ -39,8 +39,7 @@ const options = { ...@@ -39,8 +39,7 @@ const options = {
tags: [{key: 'ip', value: process.env.POD_IP}, tags: [{key: 'ip', value: process.env.POD_IP},
{key: 'name', value: process.env.POD_NAME}, {key: 'name', value: process.env.POD_NAME},
{key: 'node_name', value: process.env.NODE_NAME}], // optional {key: 'node_name', value: process.env.NODE_NAME}], // optional
host: process.env.JAEGER_HOST, endpoint: 'http://' + process.env.JAEGER_HOST + ':' + process.env.JAEGER_PORT + '/api/traces',
port: process.env.JAEGER_PORT, // optional
maxPacketSize: 65000 // optional maxPacketSize: 65000 // optional
} }
...@@ -49,7 +48,7 @@ const provider = new NodeTracerProvider(); ...@@ -49,7 +48,7 @@ const provider = new NodeTracerProvider();
provider.addSpanProcessor(new SimpleSpanProcessor(exporter)); provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.register(); provider.register();
console.log("zipkin tracing initialized"); console.log("jaeger tracing initialized, " + process.env.JAEGER_HOST + ':' + process.env.JAEGER_PORT);
const path = require('path'); const path = require('path');
const HipsterShopServer = require('./server'); const HipsterShopServer = require('./server');
......