diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 43e8ab1..0000000 --- a/.dockerignore +++ /dev/null @@ -1,10 +0,0 @@ -.dockerignore -.env -.git -.gitignore -.vs -.vscode -docker-compose.yml -docker-compose.*.yml -*/bin -*/obj diff --git a/.env b/.env deleted file mode 100644 index bb8d007..0000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -DOCKER_REGISTRY=localhost \ No newline at end of file diff --git a/.nuget/nuget.exe b/.nuget/nuget.exe deleted file mode 100644 index 0cc4088..0000000 Binary files a/.nuget/nuget.exe and /dev/null differ diff --git a/Example/.env b/Example/.env new file mode 100644 index 0000000..4249d26 --- /dev/null +++ b/Example/.env @@ -0,0 +1 @@ +DOCKER_REGISTRY=localhost:5000/ \ No newline at end of file diff --git a/Example/Modules/NormalizeTemperatureModule/Dockerfile b/Example/Modules/NormalizeTemperatureModule/Dockerfile index ce8d963..fc22313 100644 --- a/Example/Modules/NormalizeTemperatureModule/Dockerfile +++ b/Example/Modules/NormalizeTemperatureModule/Dockerfile @@ -3,12 +3,12 @@ WORKDIR /app FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src -COPY Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.csproj Example/Modules/NormalizeTemperatureModule/ -COPY Microsoft.Azure.IoT.TypeEdge/Microsoft.Azure.IoT.TypeEdge.csproj Microsoft.Azure.IoT.TypeEdge/ -COPY Example/Thermostat.Shared/Thermostat.Shared.csproj Example/Thermostat.Shared/ -RUN dotnet restore Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.csproj +COPY build build +COPY Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.csproj Modules/NormalizeTemperatureModule/ +COPY Thermostat.Shared/Thermostat.Shared.csproj Thermostat.Shared/ +RUN dotnet restore Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.csproj -s /src/build -s https://api.nuget.org/v3/index.json COPY . . -WORKDIR /src/Example/Modules/NormalizeTemperatureModule +WORKDIR /src/Modules/NormalizeTemperatureModule RUN dotnet build NormalizeTemperatureModule.csproj -c Release -o /app FROM build AS publish diff --git a/Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.cs b/Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.cs index 374da7a..a7e1f63 100644 --- a/Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.cs +++ b/Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.cs @@ -50,7 +50,6 @@ namespace Modules await Twin.ReportAsync(twin); return TwinResult.OK; }); - } } } diff --git a/Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.csproj b/Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.csproj index aeacb56..2e05f22 100644 --- a/Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.csproj +++ b/Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.csproj @@ -1,14 +1,23 @@ - + netcoreapp2.1 Exe latest + Debug;Release;TemplateDevelopment + + + + TRACE;DEBUG - + + + + + diff --git a/Example/Modules/TemperatureModule/Dockerfile b/Example/Modules/TemperatureModule/Dockerfile index e5dcf5a..2ae340f 100644 --- a/Example/Modules/TemperatureModule/Dockerfile +++ b/Example/Modules/TemperatureModule/Dockerfile @@ -3,12 +3,12 @@ WORKDIR /app FROM microsoft/dotnet:2.1-sdk AS build WORKDIR /src -COPY Example/Modules/TemperatureModule/TemperatureModule.csproj Example/Modules/TemperatureModule/ -COPY Microsoft.Azure.IoT.TypeEdge/Microsoft.Azure.IoT.TypeEdge.csproj Microsoft.Azure.IoT.TypeEdge/ -COPY Example/Thermostat.Shared/Thermostat.Shared.csproj Example/Thermostat.Shared/ -RUN dotnet restore Example/Modules/TemperatureModule/TemperatureModule.csproj +COPY build build +COPY Modules/TemperatureModule/TemperatureModule.csproj Modules/TemperatureModule/ +COPY Thermostat.Shared/Thermostat.Shared.csproj Thermostat.Shared/ +RUN dotnet restore Modules/TemperatureModule/TemperatureModule.csproj -s /src/build -s https://api.nuget.org/v3/index.json COPY . . -WORKDIR /src/Example/Modules/TemperatureModule +WORKDIR /src/Modules/TemperatureModule RUN dotnet build TemperatureModule.csproj -c Release -o /app FROM build AS publish diff --git a/Example/Modules/TemperatureModule/TemperatureModule.csproj b/Example/Modules/TemperatureModule/TemperatureModule.csproj index aeacb56..2e05f22 100644 --- a/Example/Modules/TemperatureModule/TemperatureModule.csproj +++ b/Example/Modules/TemperatureModule/TemperatureModule.csproj @@ -1,14 +1,23 @@ - + netcoreapp2.1 Exe latest + Debug;Release;TemplateDevelopment + + + + TRACE;DEBUG - + + + + + diff --git a/Example/NuGet.Config b/Example/NuGet.Config new file mode 100644 index 0000000..5097aa5 --- /dev/null +++ b/Example/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Example/Thermostat.Emulator/Dockerfile b/Example/Thermostat.Emulator/Dockerfile deleted file mode 100644 index 9bb7a5b..0000000 --- a/Example/Thermostat.Emulator/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -FROM microsoft/dotnet:2.1-runtime AS base - -# Add an unprivileged user account for running Edge Hub -RUN useradd -ms /bin/bash edgehubuser -ENV EdgeHubUser=edgehubuser - -ARG EXE_DIR=. -ENV SSL_CERTIFICATE_PATH=/app/certs -ENV SSL_CERTIFICATE_NAME=mqtt-server.pfx - -# Install snappy and set up symlinks that are absent from the base image -# Required by RocksDb -RUN apt-get update && \ - apt-get install -y libsnappy1v5 libcap2-bin && \ - ln -s /lib/x86_64-linux-gnu/libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so && \ - ln -s /lib/x86_64-linux-gnu/libc.so.6 /usr/lib/x86_64-linux-gnu/libc.so && \ - rm -rf /var/lib/apt/lists/* - -# add the CAP_NET_BIND_SERVICE capability to the dotnet binary because -# we are starting edge hub as a non-root user -RUN setcap 'cap_net_bind_service=+ep' /usr/share/dotnet/dotnet - -WORKDIR /app - -COPY $EXE_DIR/ ./ - -# Expose MQTT and HTTPS ports -EXPOSE 8883/tcp -EXPOSE 443/tcp - - -FROM microsoft/dotnet:2.1-sdk AS build -WORKDIR /src -COPY Example/Thermostat.Emulator/Thermostat.Emulator.csproj Example/Thermostat.Emulator/ -COPY Example/Thermostat.Shared/Thermostat.Shared.csproj Example/Thermostat.Shared/ -COPY Microsoft.Azure.IoT.TypeEdge/Microsoft.Azure.IoT.TypeEdge.csproj Microsoft.Azure.IoT.TypeEdge/ -COPY Microsoft.Azure.IoT.TypeEdge.Host/Microsoft.Azure.IoT.TypeEdge.Host.csproj Microsoft.Azure.IoT.TypeEdge.Host/ -COPY Example/Modules/NormalizeTemperatureModule/NormalizeTemperatureModule.csproj Example/Modules/NormalizeTemperatureModule/ -COPY Example/Modules/TemperatureModule/TemperatureModule.csproj Example/Modules/TemperatureModule/ -RUN dotnet restore Example/Thermostat.Emulator/Thermostat.Emulator.csproj -COPY . . -WORKDIR /src/Example/Thermostat.Emulator -RUN dotnet build Thermostat.Emulator.csproj -c Release -o /app - -FROM build AS publish -RUN dotnet publish Thermostat.Emulator.csproj -c Release -o /app - -FROM base AS final -WORKDIR /app -COPY --from=publish /app . -ENTRYPOINT ["dotnet", "Thermostat.Emulator.dll"] diff --git a/Example/Thermostat.Emulator/Program.cs b/Example/Thermostat.Emulator/Program.cs index 2dd51d5..73c5cdb 100644 --- a/Example/Thermostat.Emulator/Program.cs +++ b/Example/Thermostat.Emulator/Program.cs @@ -19,7 +19,6 @@ namespace ThermostatApplication .Build(); var host = new TypeEdgeHost(configuration); - host.RegisterModule(); host.RegisterModule(); diff --git a/Example/Thermostat.Emulator/Thermostat.Emulator.csproj b/Example/Thermostat.Emulator/Thermostat.Emulator.csproj index f27a306..2738c02 100644 --- a/Example/Thermostat.Emulator/Thermostat.Emulator.csproj +++ b/Example/Thermostat.Emulator/Thermostat.Emulator.csproj @@ -1,18 +1,29 @@ - + Exe netcoreapp2.1 latest + Debug;Release;TemplateDevelopment + + + + TRACE;DEBUG - + + + + + + + - + Always diff --git a/Example/Thermostat.Emulator/appsettings_thermostat.json b/Example/Thermostat.Emulator/appsettings_thermostat.json index c348d1c..c9d0ea0 100644 --- a/Example/Thermostat.Emulator/appsettings_thermostat.json +++ b/Example/Thermostat.Emulator/appsettings_thermostat.json @@ -1,8 +1,6 @@ { "TypeEdgeHost": { "IotHubConnectionString": "HostName=iotedgedev-iothub-7389d7.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=68K3zvI8CKbN7NM5s46N9rlP+zvPHPJKg7shy1rwMRU=", - "DeviceId": "type-edge-dev", - "Environment": "InMemory", - "DockerFileTemplate": "Dockerfile" + "DeviceId": "type-edge-dev" } } diff --git a/Example/Thermostat.ServiceApp/Thermostat.ServiceApp.csproj b/Example/Thermostat.ServiceApp/Thermostat.ServiceApp.csproj index 8fe202c..646b9a6 100644 --- a/Example/Thermostat.ServiceApp/Thermostat.ServiceApp.csproj +++ b/Example/Thermostat.ServiceApp/Thermostat.ServiceApp.csproj @@ -1,13 +1,23 @@ - + netcoreapp2.1 latest Exe + Debug;Release;TemplateDevelopment + + + + TRACE;DEBUG - + + + + + + diff --git a/Example/Thermostat.Shared/Thermostat.Shared.csproj b/Example/Thermostat.Shared/Thermostat.Shared.csproj index 33665b2..15e4c9f 100644 --- a/Example/Thermostat.Shared/Thermostat.Shared.csproj +++ b/Example/Thermostat.Shared/Thermostat.Shared.csproj @@ -1,11 +1,20 @@ - + netcoreapp2.1 + Debug;Release;TemplateDevelopment + + + + TRACE;DEBUG - + + + + + diff --git a/Example/ThermostatApplication.sln b/Example/ThermostatApplication.sln index c51728e..5f93ffe 100644 --- a/Example/ThermostatApplication.sln +++ b/Example/ThermostatApplication.sln @@ -3,51 +3,57 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.27703.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThermostatApplication.Shared", "ThermostatApplication.Shared\ThermostatApplication.Shared.csproj", "{DD7A29AD-0125-4335-BDA1-41DD7586BD6D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ThermostatApplication", "ThermostatApplication\ThermostatApplication.csproj", "{8CAC237D-EE55-481F-B08A-5B3F9DE2F43A}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{8D822B22-E5A9-4165-B27B-458A70D2B44F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TemperatureModule", "TemperatureModule\TemperatureModule.csproj", "{D24DFF2A-1783-45EC-B4D0-DB4C48864E01}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NormalizeTemperatureModule", "NormalizeTemperatureModule\NormalizeTemperatureModule.csproj", "{5EF59CBB-28AB-42CB-B7EC-528D20F5CDAC}" -EndProject Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{1373DBDC-DC13-429E-8C17-2E4D85CF42BA}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NormalizeTemperatureModule", "Modules\NormalizeTemperatureModule\NormalizeTemperatureModule.csproj", "{97D246B7-A79E-49A1-A9BA-2D1B8A6C26BF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TemperatureModule", "Modules\TemperatureModule\TemperatureModule.csproj", "{73158509-5709-40DF-A5A9-89661B3000A7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Thermostat.Emulator", "Thermostat.Emulator\Thermostat.Emulator.csproj", "{1A622C23-B9BD-4903-A28D-28B446BB358E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Thermostat.Shared", "Thermostat.Shared\Thermostat.Shared.csproj", "{7DB0AED8-EA6D-466E-B173-6C6BA4A692CF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Thermostat.ServiceApp", "Thermostat.ServiceApp\Thermostat.ServiceApp.csproj", "{258D1CCE-A112-46A2-88F1-D9BA50450C7B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DD7A29AD-0125-4335-BDA1-41DD7586BD6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DD7A29AD-0125-4335-BDA1-41DD7586BD6D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DD7A29AD-0125-4335-BDA1-41DD7586BD6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DD7A29AD-0125-4335-BDA1-41DD7586BD6D}.Release|Any CPU.Build.0 = Release|Any CPU - {8CAC237D-EE55-481F-B08A-5B3F9DE2F43A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8CAC237D-EE55-481F-B08A-5B3F9DE2F43A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8CAC237D-EE55-481F-B08A-5B3F9DE2F43A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8CAC237D-EE55-481F-B08A-5B3F9DE2F43A}.Release|Any CPU.Build.0 = Release|Any CPU - {D24DFF2A-1783-45EC-B4D0-DB4C48864E01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D24DFF2A-1783-45EC-B4D0-DB4C48864E01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D24DFF2A-1783-45EC-B4D0-DB4C48864E01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D24DFF2A-1783-45EC-B4D0-DB4C48864E01}.Release|Any CPU.Build.0 = Release|Any CPU - {5EF59CBB-28AB-42CB-B7EC-528D20F5CDAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5EF59CBB-28AB-42CB-B7EC-528D20F5CDAC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5EF59CBB-28AB-42CB-B7EC-528D20F5CDAC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5EF59CBB-28AB-42CB-B7EC-528D20F5CDAC}.Release|Any CPU.Build.0 = Release|Any CPU {1373DBDC-DC13-429E-8C17-2E4D85CF42BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1373DBDC-DC13-429E-8C17-2E4D85CF42BA}.Debug|Any CPU.Build.0 = Debug|Any CPU {1373DBDC-DC13-429E-8C17-2E4D85CF42BA}.Release|Any CPU.ActiveCfg = Release|Any CPU {1373DBDC-DC13-429E-8C17-2E4D85CF42BA}.Release|Any CPU.Build.0 = Release|Any CPU + {97D246B7-A79E-49A1-A9BA-2D1B8A6C26BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97D246B7-A79E-49A1-A9BA-2D1B8A6C26BF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97D246B7-A79E-49A1-A9BA-2D1B8A6C26BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97D246B7-A79E-49A1-A9BA-2D1B8A6C26BF}.Release|Any CPU.Build.0 = Release|Any CPU + {73158509-5709-40DF-A5A9-89661B3000A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73158509-5709-40DF-A5A9-89661B3000A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73158509-5709-40DF-A5A9-89661B3000A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73158509-5709-40DF-A5A9-89661B3000A7}.Release|Any CPU.Build.0 = Release|Any CPU + {1A622C23-B9BD-4903-A28D-28B446BB358E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A622C23-B9BD-4903-A28D-28B446BB358E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A622C23-B9BD-4903-A28D-28B446BB358E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A622C23-B9BD-4903-A28D-28B446BB358E}.Release|Any CPU.Build.0 = Release|Any CPU + {7DB0AED8-EA6D-466E-B173-6C6BA4A692CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7DB0AED8-EA6D-466E-B173-6C6BA4A692CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7DB0AED8-EA6D-466E-B173-6C6BA4A692CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7DB0AED8-EA6D-466E-B173-6C6BA4A692CF}.Release|Any CPU.Build.0 = Release|Any CPU + {258D1CCE-A112-46A2-88F1-D9BA50450C7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {258D1CCE-A112-46A2-88F1-D9BA50450C7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {258D1CCE-A112-46A2-88F1-D9BA50450C7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {258D1CCE-A112-46A2-88F1-D9BA50450C7B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {D24DFF2A-1783-45EC-B4D0-DB4C48864E01} = {8D822B22-E5A9-4165-B27B-458A70D2B44F} - {5EF59CBB-28AB-42CB-B7EC-528D20F5CDAC} = {8D822B22-E5A9-4165-B27B-458A70D2B44F} + {97D246B7-A79E-49A1-A9BA-2D1B8A6C26BF} = {8D822B22-E5A9-4165-B27B-458A70D2B44F} + {73158509-5709-40DF-A5A9-89661B3000A7} = {8D822B22-E5A9-4165-B27B-458A70D2B44F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {E7BE10A1-BBA6-43BB-BC65-A9D38A168E00} diff --git a/Example/build/Microsoft.Azure.Devices.Edge.Agent.Core.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Agent.Core.1.0.0.nupkg new file mode 100644 index 0000000..a541e75 Binary files /dev/null and b/Example/build/Microsoft.Azure.Devices.Edge.Agent.Core.1.0.0.nupkg differ diff --git a/build/Microsoft.Azure.Devices.Edge.Hub.Amqp.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Amqp.1.0.0.nupkg similarity index 97% rename from build/Microsoft.Azure.Devices.Edge.Hub.Amqp.1.0.0.nupkg rename to Example/build/Microsoft.Azure.Devices.Edge.Hub.Amqp.1.0.0.nupkg index 6317ab7..9d87881 100644 Binary files a/build/Microsoft.Azure.Devices.Edge.Hub.Amqp.1.0.0.nupkg and b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Amqp.1.0.0.nupkg differ diff --git a/Example/build/Microsoft.Azure.Devices.Edge.Hub.CloudProxy.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Hub.CloudProxy.1.0.0.nupkg new file mode 100644 index 0000000..86b2cc6 Binary files /dev/null and b/Example/build/Microsoft.Azure.Devices.Edge.Hub.CloudProxy.1.0.0.nupkg differ diff --git a/build/Microsoft.Azure.Devices.Edge.Hub.Core.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Core.1.0.0.nupkg similarity index 98% rename from build/Microsoft.Azure.Devices.Edge.Hub.Core.1.0.0.nupkg rename to Example/build/Microsoft.Azure.Devices.Edge.Hub.Core.1.0.0.nupkg index 7d3c8d2..c970379 100644 Binary files a/build/Microsoft.Azure.Devices.Edge.Hub.Core.1.0.0.nupkg and b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Core.1.0.0.nupkg differ diff --git a/build/Microsoft.Azure.Devices.Edge.Hub.Http.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Http.1.0.0.nupkg similarity index 91% rename from build/Microsoft.Azure.Devices.Edge.Hub.Http.1.0.0.nupkg rename to Example/build/Microsoft.Azure.Devices.Edge.Hub.Http.1.0.0.nupkg index 6fd7d98..69de2f1 100644 Binary files a/build/Microsoft.Azure.Devices.Edge.Hub.Http.1.0.0.nupkg and b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Http.1.0.0.nupkg differ diff --git a/build/Microsoft.Azure.Devices.Edge.Hub.Mqtt.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Mqtt.1.0.0.nupkg similarity index 93% rename from build/Microsoft.Azure.Devices.Edge.Hub.Mqtt.1.0.0.nupkg rename to Example/build/Microsoft.Azure.Devices.Edge.Hub.Mqtt.1.0.0.nupkg index ac48e90..233eb10 100644 Binary files a/build/Microsoft.Azure.Devices.Edge.Hub.Mqtt.1.0.0.nupkg and b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Mqtt.1.0.0.nupkg differ diff --git a/build/Microsoft.Azure.Devices.Edge.Hub.Service.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Service.1.0.0.nupkg similarity index 92% rename from build/Microsoft.Azure.Devices.Edge.Hub.Service.1.0.0.nupkg rename to Example/build/Microsoft.Azure.Devices.Edge.Hub.Service.1.0.0.nupkg index d953d6e..27d5edb 100644 Binary files a/build/Microsoft.Azure.Devices.Edge.Hub.Service.1.0.0.nupkg and b/Example/build/Microsoft.Azure.Devices.Edge.Hub.Service.1.0.0.nupkg differ diff --git a/build/Microsoft.Azure.Devices.Edge.Storage.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Storage.1.0.0.nupkg similarity index 93% rename from build/Microsoft.Azure.Devices.Edge.Storage.1.0.0.nupkg rename to Example/build/Microsoft.Azure.Devices.Edge.Storage.1.0.0.nupkg index a33855b..d1662d6 100644 Binary files a/build/Microsoft.Azure.Devices.Edge.Storage.1.0.0.nupkg and b/Example/build/Microsoft.Azure.Devices.Edge.Storage.1.0.0.nupkg differ diff --git a/build/Microsoft.Azure.Devices.Edge.Storage.RocksDb.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Storage.RocksDb.1.0.0.nupkg similarity index 88% rename from build/Microsoft.Azure.Devices.Edge.Storage.RocksDb.1.0.0.nupkg rename to Example/build/Microsoft.Azure.Devices.Edge.Storage.RocksDb.1.0.0.nupkg index 76dd5b7..1c9629a 100644 Binary files a/build/Microsoft.Azure.Devices.Edge.Storage.RocksDb.1.0.0.nupkg and b/Example/build/Microsoft.Azure.Devices.Edge.Storage.RocksDb.1.0.0.nupkg differ diff --git a/build/Microsoft.Azure.Devices.Edge.Util.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Edge.Util.1.0.0.nupkg similarity index 97% rename from build/Microsoft.Azure.Devices.Edge.Util.1.0.0.nupkg rename to Example/build/Microsoft.Azure.Devices.Edge.Util.1.0.0.nupkg index e925b70..4b2cf0d 100644 Binary files a/build/Microsoft.Azure.Devices.Edge.Util.1.0.0.nupkg and b/Example/build/Microsoft.Azure.Devices.Edge.Util.1.0.0.nupkg differ diff --git a/build/Microsoft.Azure.Devices.Routing.Core.1.0.0.nupkg b/Example/build/Microsoft.Azure.Devices.Routing.Core.1.0.0.nupkg similarity index 99% rename from build/Microsoft.Azure.Devices.Routing.Core.1.0.0.nupkg rename to Example/build/Microsoft.Azure.Devices.Routing.Core.1.0.0.nupkg index d42351b..8a158c3 100644 Binary files a/build/Microsoft.Azure.Devices.Routing.Core.1.0.0.nupkg and b/Example/build/Microsoft.Azure.Devices.Routing.Core.1.0.0.nupkg differ diff --git a/Example/build/Microsoft.Azure.IoT.TypeEdge.0.0.1.nupkg b/Example/build/Microsoft.Azure.IoT.TypeEdge.0.0.1.nupkg new file mode 100644 index 0000000..99b1fd6 Binary files /dev/null and b/Example/build/Microsoft.Azure.IoT.TypeEdge.0.0.1.nupkg differ diff --git a/Example/build/Microsoft.Azure.IoT.TypeEdge.0.0.2.nupkg b/Example/build/Microsoft.Azure.IoT.TypeEdge.0.0.2.nupkg new file mode 100644 index 0000000..eda7eb6 Binary files /dev/null and b/Example/build/Microsoft.Azure.IoT.TypeEdge.0.0.2.nupkg differ diff --git a/Example/build/Microsoft.Azure.IoT.TypeEdge.Host.0.0.1.nupkg b/Example/build/Microsoft.Azure.IoT.TypeEdge.Host.0.0.1.nupkg new file mode 100644 index 0000000..caa0307 Binary files /dev/null and b/Example/build/Microsoft.Azure.IoT.TypeEdge.Host.0.0.1.nupkg differ diff --git a/Example/build/Microsoft.Azure.IoT.TypeEdge.Host.0.0.2.nupkg b/Example/build/Microsoft.Azure.IoT.TypeEdge.Host.0.0.2.nupkg new file mode 100644 index 0000000..442a9de Binary files /dev/null and b/Example/build/Microsoft.Azure.IoT.TypeEdge.Host.0.0.2.nupkg differ diff --git a/build/Microsoft.Azure.IoT.TypeEdge.Proxy.0.0.1.nupkg b/Example/build/Microsoft.Azure.IoT.TypeEdge.Proxy.0.0.1.nupkg similarity index 77% rename from build/Microsoft.Azure.IoT.TypeEdge.Proxy.0.0.1.nupkg rename to Example/build/Microsoft.Azure.IoT.TypeEdge.Proxy.0.0.1.nupkg index ef13133..867039f 100644 Binary files a/build/Microsoft.Azure.IoT.TypeEdge.Proxy.0.0.1.nupkg and b/Example/build/Microsoft.Azure.IoT.TypeEdge.Proxy.0.0.1.nupkg differ diff --git a/Example/build/Microsoft.Azure.IoT.TypeEdge.Proxy.0.0.2.nupkg b/Example/build/Microsoft.Azure.IoT.TypeEdge.Proxy.0.0.2.nupkg new file mode 100644 index 0000000..2d4beb0 Binary files /dev/null and b/Example/build/Microsoft.Azure.IoT.TypeEdge.Proxy.0.0.2.nupkg differ diff --git a/Example/docker-compose.yml b/Example/docker-compose.yml index f3453f9..f031e19 100644 --- a/Example/docker-compose.yml +++ b/Example/docker-compose.yml @@ -1,8 +1,23 @@ version: '3.4' services: - thermostatapplication: - image: ${DOCKER_REGISTRY}thermostatapplication + + normalizetemperaturemodule: + image: ${DOCKER_REGISTRY}normalizetemperaturemodule build: context: . - dockerfile: ThermostatApplication/Dockerfile + dockerfile: Modules/NormalizeTemperatureModule/Dockerfile + + + temperaturemodule: + image: ${DOCKER_REGISTRY}temperaturemodule + build: + context: . + dockerfile: Modules/TemperatureModule/Dockerfile + + + thermostat.emulator: + image: ${DOCKER_REGISTRY}thermostatemulator + build: + context: . + dockerfile: Thermostat.Emulator/Dockerfile \ No newline at end of file diff --git a/Microsoft.Azure.IoT.TypeEdge-WithExample.sln b/Microsoft.Azure.IoT.TypeEdge-WithExample.sln index e123bfa..1685cea 100644 --- a/Microsoft.Azure.IoT.TypeEdge-WithExample.sln +++ b/Microsoft.Azure.IoT.TypeEdge-WithExample.sln @@ -11,8 +11,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Example", "Example", "{C865 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Modules", "Modules", "{F2FF1756-9AAF-411B-8B54-3829EAC21515}" EndProject -Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{8275D850-82CD-4204-A4BE-C8EC3095E703}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TemperatureModule", "Example\Modules\TemperatureModule\TemperatureModule.csproj", "{48302C68-971D-414F-A29D-742F79415D74}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NormalizeTemperatureModule", "Example\Modules\NormalizeTemperatureModule\NormalizeTemperatureModule.csproj", "{30A335A6-47C9-435A-BA23-50988EAF2C33}" @@ -30,6 +28,7 @@ Global CodeCoverage|Any CPU = CodeCoverage|Any CPU Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU + TemplateDevelopment|Any CPU = TemplateDevelopment|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {54587D56-7C22-4084-9321-84D57C2F6ECB}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU @@ -38,61 +37,70 @@ Global {54587D56-7C22-4084-9321-84D57C2F6ECB}.Debug|Any CPU.Build.0 = Debug|Any CPU {54587D56-7C22-4084-9321-84D57C2F6ECB}.Release|Any CPU.ActiveCfg = Release|Any CPU {54587D56-7C22-4084-9321-84D57C2F6ECB}.Release|Any CPU.Build.0 = Release|Any CPU + {54587D56-7C22-4084-9321-84D57C2F6ECB}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {54587D56-7C22-4084-9321-84D57C2F6ECB}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.CodeCoverage|Any CPU.Build.0 = Debug|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.Debug|Any CPU.Build.0 = Debug|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.Release|Any CPU.ActiveCfg = Release|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.Release|Any CPU.Build.0 = Release|Any CPU - {8275D850-82CD-4204-A4BE-C8EC3095E703}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU - {8275D850-82CD-4204-A4BE-C8EC3095E703}.CodeCoverage|Any CPU.Build.0 = Debug|Any CPU - {8275D850-82CD-4204-A4BE-C8EC3095E703}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8275D850-82CD-4204-A4BE-C8EC3095E703}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8275D850-82CD-4204-A4BE-C8EC3095E703}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8275D850-82CD-4204-A4BE-C8EC3095E703}.Release|Any CPU.Build.0 = Release|Any CPU + {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU {48302C68-971D-414F-A29D-742F79415D74}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU {48302C68-971D-414F-A29D-742F79415D74}.CodeCoverage|Any CPU.Build.0 = Debug|Any CPU {48302C68-971D-414F-A29D-742F79415D74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {48302C68-971D-414F-A29D-742F79415D74}.Debug|Any CPU.Build.0 = Debug|Any CPU {48302C68-971D-414F-A29D-742F79415D74}.Release|Any CPU.ActiveCfg = Release|Any CPU {48302C68-971D-414F-A29D-742F79415D74}.Release|Any CPU.Build.0 = Release|Any CPU + {48302C68-971D-414F-A29D-742F79415D74}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {48302C68-971D-414F-A29D-742F79415D74}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU {30A335A6-47C9-435A-BA23-50988EAF2C33}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU {30A335A6-47C9-435A-BA23-50988EAF2C33}.CodeCoverage|Any CPU.Build.0 = Debug|Any CPU {30A335A6-47C9-435A-BA23-50988EAF2C33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {30A335A6-47C9-435A-BA23-50988EAF2C33}.Debug|Any CPU.Build.0 = Debug|Any CPU {30A335A6-47C9-435A-BA23-50988EAF2C33}.Release|Any CPU.ActiveCfg = Release|Any CPU {30A335A6-47C9-435A-BA23-50988EAF2C33}.Release|Any CPU.Build.0 = Release|Any CPU + {30A335A6-47C9-435A-BA23-50988EAF2C33}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {30A335A6-47C9-435A-BA23-50988EAF2C33}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU {45F97F43-7C75-49B8-8525-7F0E9C7B9FB7}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU {45F97F43-7C75-49B8-8525-7F0E9C7B9FB7}.CodeCoverage|Any CPU.Build.0 = Debug|Any CPU {45F97F43-7C75-49B8-8525-7F0E9C7B9FB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {45F97F43-7C75-49B8-8525-7F0E9C7B9FB7}.Debug|Any CPU.Build.0 = Debug|Any CPU {45F97F43-7C75-49B8-8525-7F0E9C7B9FB7}.Release|Any CPU.ActiveCfg = Release|Any CPU {45F97F43-7C75-49B8-8525-7F0E9C7B9FB7}.Release|Any CPU.Build.0 = Release|Any CPU + {45F97F43-7C75-49B8-8525-7F0E9C7B9FB7}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {45F97F43-7C75-49B8-8525-7F0E9C7B9FB7}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU {2076DDEF-8EE3-4BC1-BF79-1C1F62A8719D}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU {2076DDEF-8EE3-4BC1-BF79-1C1F62A8719D}.CodeCoverage|Any CPU.Build.0 = Debug|Any CPU {2076DDEF-8EE3-4BC1-BF79-1C1F62A8719D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2076DDEF-8EE3-4BC1-BF79-1C1F62A8719D}.Debug|Any CPU.Build.0 = Debug|Any CPU {2076DDEF-8EE3-4BC1-BF79-1C1F62A8719D}.Release|Any CPU.ActiveCfg = Release|Any CPU {2076DDEF-8EE3-4BC1-BF79-1C1F62A8719D}.Release|Any CPU.Build.0 = Release|Any CPU + {2076DDEF-8EE3-4BC1-BF79-1C1F62A8719D}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {2076DDEF-8EE3-4BC1-BF79-1C1F62A8719D}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU {286CDAA1-5410-4322-AC1C-F35A83CDA63D}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU {286CDAA1-5410-4322-AC1C-F35A83CDA63D}.CodeCoverage|Any CPU.Build.0 = Debug|Any CPU {286CDAA1-5410-4322-AC1C-F35A83CDA63D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {286CDAA1-5410-4322-AC1C-F35A83CDA63D}.Debug|Any CPU.Build.0 = Debug|Any CPU {286CDAA1-5410-4322-AC1C-F35A83CDA63D}.Release|Any CPU.ActiveCfg = Release|Any CPU {286CDAA1-5410-4322-AC1C-F35A83CDA63D}.Release|Any CPU.Build.0 = Release|Any CPU + {286CDAA1-5410-4322-AC1C-F35A83CDA63D}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {286CDAA1-5410-4322-AC1C-F35A83CDA63D}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU {E738845B-4D98-4CB9-BDA4-F83193FE81B5}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU {E738845B-4D98-4CB9-BDA4-F83193FE81B5}.CodeCoverage|Any CPU.Build.0 = Debug|Any CPU {E738845B-4D98-4CB9-BDA4-F83193FE81B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E738845B-4D98-4CB9-BDA4-F83193FE81B5}.Debug|Any CPU.Build.0 = Debug|Any CPU {E738845B-4D98-4CB9-BDA4-F83193FE81B5}.Release|Any CPU.ActiveCfg = Release|Any CPU {E738845B-4D98-4CB9-BDA4-F83193FE81B5}.Release|Any CPU.Build.0 = Release|Any CPU + {E738845B-4D98-4CB9-BDA4-F83193FE81B5}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {E738845B-4D98-4CB9-BDA4-F83193FE81B5}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {F2FF1756-9AAF-411B-8B54-3829EAC21515} = {C865B730-A5A7-4738-9F6E-CBC7AA306467} - {8275D850-82CD-4204-A4BE-C8EC3095E703} = {C865B730-A5A7-4738-9F6E-CBC7AA306467} {48302C68-971D-414F-A29D-742F79415D74} = {F2FF1756-9AAF-411B-8B54-3829EAC21515} {30A335A6-47C9-435A-BA23-50988EAF2C33} = {F2FF1756-9AAF-411B-8B54-3829EAC21515} {45F97F43-7C75-49B8-8525-7F0E9C7B9FB7} = {C865B730-A5A7-4738-9F6E-CBC7AA306467} diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/.nuspec b/Microsoft.Azure.IoT.TypeEdge.Host/.nuspec new file mode 100644 index 0000000..a86fecb --- /dev/null +++ b/Microsoft.Azure.IoT.TypeEdge.Host/.nuspec @@ -0,0 +1,37 @@ + + + + Microsoft.Azure.IoT.TypeEdge.Host + 0.0.2 + paloukari + paloukari + false + Package Description + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/Constants.cs b/Microsoft.Azure.IoT.TypeEdge.Host/Constants.cs index 673766d..bf24794 100644 --- a/Microsoft.Azure.IoT.TypeEdge.Host/Constants.cs +++ b/Microsoft.Azure.IoT.TypeEdge.Host/Constants.cs @@ -2,7 +2,7 @@ { internal class Constants { - public const string ConfigFileName = "appsettings_compose.json"; + } -} \ No newline at end of file +} \ No newline at end of file diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/Dockerfile b/Microsoft.Azure.IoT.TypeEdge.Host/Dockerfile new file mode 100644 index 0000000..ac6a110 --- /dev/null +++ b/Microsoft.Azure.IoT.TypeEdge.Host/Dockerfile @@ -0,0 +1,32 @@ +ARG base_tag=2.1-runtime-stretch-slim +FROM microsoft/dotnet:${base_tag} + +# Add an unprivileged user account for running Edge Hub +RUN useradd -ms /bin/bash edgehubuser +ENV EdgeHubUser=edgehubuser + +ARG EXE_DIR=. +ENV SSL_CERTIFICATE_PATH=/app/certs +ENV SSL_CERTIFICATE_NAME=mqtt-server.pfx + +# Install snappy and set up symlinks that are absent from the base image +# Required by RocksDb +RUN apt-get update && \ + apt-get install -y libsnappy1v5 libcap2-bin && \ + ln -s /lib/x86_64-linux-gnu/libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so && \ + ln -s /lib/x86_64-linux-gnu/libc.so.6 /usr/lib/x86_64-linux-gnu/libc.so && \ + rm -rf /var/lib/apt/lists/* + +# add the CAP_NET_BIND_SERVICE capability to the dotnet binary because +# we are starting edge hub as a non-root user +RUN setcap 'cap_net_bind_service=+ep' /usr/share/dotnet/dotnet + +WORKDIR /app + +COPY $EXE_DIR/ ./ + +# Expose MQTT and HTTPS ports +EXPOSE 8883/tcp +EXPOSE 443/tcp + +CMD ["scripts/linux/start.sh"] diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/Hub/EdgeHub.cs b/Microsoft.Azure.IoT.TypeEdge.Host/Hub/EdgeHub.cs index fd029ed..2e81ae9 100644 --- a/Microsoft.Azure.IoT.TypeEdge.Host/Hub/EdgeHub.cs +++ b/Microsoft.Azure.IoT.TypeEdge.Host/Hub/EdgeHub.cs @@ -16,7 +16,6 @@ namespace Microsoft.Azure.IoT.TypeEdge.Host.Hub public override CreationResult Configure(IConfigurationRoot configuration) { HubServiceConfiguration = new ConfigurationBuilder() - .AddJsonFile(Constants.ConfigFileName) .AddEnvironmentVariables() .Build(); diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/Microsoft.Azure.IoT.TypeEdge.Host.csproj b/Microsoft.Azure.IoT.TypeEdge.Host/Microsoft.Azure.IoT.TypeEdge.Host.csproj index cb68fe9..ac3be0d 100644 --- a/Microsoft.Azure.IoT.TypeEdge.Host/Microsoft.Azure.IoT.TypeEdge.Host.csproj +++ b/Microsoft.Azure.IoT.TypeEdge.Host/Microsoft.Azure.IoT.TypeEdge.Host.csproj @@ -1,4 +1,4 @@ - + Microsoft.Azure.IoT.TypeEdge.Host @@ -7,71 +7,43 @@ Microsoft true - ../build + ../Example/build netcoreapp2.1 + Debug;Release;TemplateDevelopment + + .nuspec - - - PreserveNewest - - - - - Never - - - - + + contentFiles + + - + PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - + PreserveNewest + + + Never + - - - + + + diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/Microsoft.Azure.IoT.TypeEdge.Host.targets b/Microsoft.Azure.IoT.TypeEdge.Host/Microsoft.Azure.IoT.TypeEdge.Host.targets new file mode 100644 index 0000000..14d251a --- /dev/null +++ b/Microsoft.Azure.IoT.TypeEdge.Host/Microsoft.Azure.IoT.TypeEdge.Host.targets @@ -0,0 +1,23 @@ + + + + Certificates\edge-chain-ca\cert\edge-chain-ca.cert.pem + PreserveNewest + + + Certificates\edge-device-ca\cert\edge-device-ca-root.cert.pem + PreserveNewest + + + Certificates\edge-hub-server\cert\edge-hub-server.cert.pfx + PreserveNewest + + + Dockerfile + + + appsettings_hub.json + PreserveNewest + + + \ No newline at end of file diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/RunningEnvironment.cs b/Microsoft.Azure.IoT.TypeEdge.Host/RunningEnvironment.cs index 73d71a1..3489ffd 100644 --- a/Microsoft.Azure.IoT.TypeEdge.Host/RunningEnvironment.cs +++ b/Microsoft.Azure.IoT.TypeEdge.Host/RunningEnvironment.cs @@ -8,4 +8,4 @@ LocalDevice, RemoteDevice } -} \ No newline at end of file +} \ No newline at end of file diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/Scripts/linux/generate-cert.sh b/Microsoft.Azure.IoT.TypeEdge.Host/Scripts/linux/generate-cert.sh deleted file mode 100644 index 559e883..0000000 --- a/Microsoft.Azure.IoT.TypeEdge.Host/Scripts/linux/generate-cert.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash - -############################################################################### -# This Script uses openssl to generate a self signed certificate -############################################################################### - -############################################################################### -# Define Environment Variables -############################################################################### -SCRIPT_NAME=$(basename $0) -SSL_CERTIFICATE_COMMON_NAME=${SSL_CERTIFICATE_COMMON_NAME:="$HOSTNAME"} - -############################################################################### -# Print usage information pertaining to this script and exit -############################################################################### -usage() -{ - echo "$SCRIPT_NAME" - echo "Note: Depending on the options you might have to run this as root or sudo." - echo "" - echo "options" - echo " -p, --ssl_cert_path SSL Certificate Path" - echo " -f, --ssl_cert_file SSL Certificate File" - echo " -cn, --ssl_cert_cn SSL Certificate Common Name. Optional, if none provided, $HOSTNAME will be used" - exit 1; -} - -print_help_and_exit() -{ - echo "Run $SCRIPT_NAME --help for more information." - exit 1 -} - -############################################################################### -# Obtain and validate the options supported by this script -############################################################################### -process_args() -{ - save_next_arg=0 - for arg in $@ - do - if [ $save_next_arg -eq 1 ]; then - SSL_CERTIFICATE_PATH="$arg" - save_next_arg=0 - elif [ $save_next_arg -eq 2 ]; then - SSL_CERTIFICATE_NAME="$arg" - save_next_arg=0 - elif [ $save_next_arg -eq 3 ]; then - SSL_CERTIFICATE_COMMON_NAME="$arg" - save_next_arg=0 - else - case "$arg" in - "-h" | "--help" ) usage;; - "-p" | "--ssl_cert_path" ) save_next_arg=1;; - "-f" | "--ssl_cert_file" ) save_next_arg=2;; - "-cn" | "--ssl_cert_cn" ) save_next_arg=3;; - * ) usage;; - esac - fi - done - - if [[ ! -d $SSL_CERTIFICATE_PATH ]]; then - echo "Invalid SSL Certificate Path Provided" - print_help_and_exit - fi - - if [[ -z $SSL_CERTIFICATE_NAME ]]; then - echo "Invalid SSL Certificate Name Provided" - print_help_and_exit - fi - - if [[ -z $SSL_CERTIFICATE_COMMON_NAME ]]; then - echo "Invalid SSL Certificate Path Provided" - print_help_and_exit - fi -} - -############################################################################### -# Function to generate a cert -############################################################################### -generate_cert() -{ - #command="openssl req -nodes -new -x509 -keyout /etc/ssl/private/mqtt-server.key -out $SSL_CERTIFICATE_PATH/mqtt-server.crt -subj /CN=$SSL_CERTIFICATE_COMMON_NAME" - mkdir -p $SSL_CERTIFICATE_PATH - mkdir -p $SSL_CERTIFICATE_PATH/private - command="openssl req -nodes -new -x509 -keyout $SSL_CERTIFICATE_PATH/private/mqtt-server.key -out $SSL_CERTIFICATE_PATH/mqtt-server.crt -subj /CN=$SSL_CERTIFICATE_COMMON_NAME" - - $command - - if [ $? -ne 0 ]; then - echo "Failed to generate certificate." - exit 1 - fi - - command="openssl pkcs12 -export -out $SSL_CERTIFICATE_PATH/$SSL_CERTIFICATE_NAME -inkey $SSL_CERTIFICATE_PATH/private/mqtt-server.key -in $SSL_CERTIFICATE_PATH/mqtt-server.crt -passout pass:" - - $command - - if [ $? -ne 0 ]; then - echo "Failed to generate certificate." - exit 1 - fi - - echo "Certificate generated successfully!" -} - -############################################################################### -# Main Script Execution -############################################################################### -process_args $@ - -generate_cert - -[ $? -eq 0 ] || exit $? diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/TypeEdgeHost.cs b/Microsoft.Azure.IoT.TypeEdge.Host/TypeEdgeHost.cs index ce3f92a..edf38e3 100644 --- a/Microsoft.Azure.IoT.TypeEdge.Host/TypeEdgeHost.cs +++ b/Microsoft.Azure.IoT.TypeEdge.Host/TypeEdgeHost.cs @@ -10,21 +10,21 @@ using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using ILogger = Microsoft.Extensions.Logging.ILogger; -using HubService = Microsoft.Azure.Devices.Edge.Hub.Service; +using HubService = Microsoft.Azure.Devices.Edge.Hub.Service; using System.Reflection; -using Microsoft.Azure.Devices; +using Microsoft.Azure.Devices; using Microsoft.Azure.Devices.Common.Exceptions; using Newtonsoft.Json; using Microsoft.Azure.Devices.Shared; using Newtonsoft.Json.Linq; using System.Linq; using Microsoft.Azure.IoT.TypeEdge.Host.Hub; -using Microsoft.Azure.Devices.Edge.Agent.Core; +using Microsoft.Azure.Devices.Edge.Agent.Core; using Core = Microsoft.Azure.Devices.Edge.Agent.Core; using Castle.DynamicProxy; namespace Microsoft.Azure.IoT.TypeEdge.Host -{ +{ public class TypeEdgeHost { public Upstream Upstream { get; set; } @@ -85,7 +85,7 @@ namespace Microsoft.Azure.IoT.TypeEdge.Host private void BuildHub(string deviceSasKey) { //Calculate the Hub Enviroment Varialbes - var currentLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + var currentLocation = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); Environment.SetEnvironmentVariable(HubService.Constants.SslCertEnvName, "edge-hub-server.cert.pfx"); @@ -122,7 +122,7 @@ namespace Microsoft.Azure.IoT.TypeEdge.Host private void ConfigureModules() { - var currentLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + var currentLocation = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); foreach (var module in this.modules) { var moduleConnectionString = GetModuleConnectionStringAsync(options.IotHubConnectionString, options.DeviceId, module.Name).Result; @@ -167,23 +167,23 @@ namespace Microsoft.Azure.IoT.TypeEdge.Host sasKey = device.Authentication.SymmetricKey.PrimaryKey; } catch (DeviceAlreadyExistsException) - { + { var device = await registryManager.GetDeviceAsync(options.DeviceId); sasKey = device.Authentication.SymmetricKey.PrimaryKey; - } - - try + } + + try { - ConfigurationContent configurationContent; + ConfigurationContent configurationContent; using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Microsoft.Azure.IoT.TypeEdge.Host.deviceconfig.json")) - using (StreamReader reader = new StreamReader(stream)) + using (StreamReader reader = new StreamReader(stream)) { var deviceconfig = reader.ReadToEnd(); configurationContent = JsonConvert.DeserializeObject(deviceconfig); } var modulesConfig = configurationContent.ModuleContent["$edgeAgent"].TargetContent["modules"] as JObject; foreach (var module in modules) - { + { modulesConfig.Add(module.Name, JObject.FromObject(new { version = "1.0", @@ -192,8 +192,8 @@ namespace Microsoft.Azure.IoT.TypeEdge.Host restartPolicy = "on-failure", settings = new { - image = "devimage", - createOptions = $" -e {Microsoft.Azure.IoT.TypeEdge.Constants.ModuleNameConfigName}='{module.Name}' " + image = module.Name.ToLower(), + createOptions = "{\"Env\":[\"" + Microsoft.Azure.IoT.TypeEdge.Constants.ModuleNameConfigName + "=" + module.Name + "\"]}" } })); diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/TypeEdgeHostOptions.cs b/Microsoft.Azure.IoT.TypeEdge.Host/TypeEdgeHostOptions.cs index e353423..1296079 100644 --- a/Microsoft.Azure.IoT.TypeEdge.Host/TypeEdgeHostOptions.cs +++ b/Microsoft.Azure.IoT.TypeEdge.Host/TypeEdgeHostOptions.cs @@ -9,8 +9,7 @@ namespace Microsoft.Azure.IoT.TypeEdge.Host { public string IotHubConnectionString { get; set; } public string DeviceId { get; set; } - public RunningEnvironment Environment { get; set; } public LogEventLevel RuntimeLogLevel { get; set; } - public string DockerFileTemplate { get; set; } } } + \ No newline at end of file diff --git a/Microsoft.Azure.IoT.TypeEdge.Host/appsettings_hub.json b/Microsoft.Azure.IoT.TypeEdge.Host/appsettings_hub.json new file mode 100644 index 0000000..6d53313 --- /dev/null +++ b/Microsoft.Azure.IoT.TypeEdge.Host/appsettings_hub.json @@ -0,0 +1,57 @@ +{ + "appSettings": { + "MaxPendingInboundAcknowledgements": 16, + "DeviceReceiveAckTimeout": "00:00:00", + "MaxInboundMessageSize": "262144", + "ConnectArrivalTimeout": "00:01:00", + "MaxKeepAliveTimeout": "00:10:00", + "RetainPropertyName": "mqtt-retain", + "DupPropertyName": "mqtt-dup", + "QoSPropertyName": "mqtt-qos", + "IotHubClient.MaxPendingInboundMessages": 10, + "IotHubClient.MaxPendingOutboundMessages": 10, + "IotHubClient.DefaultPublishToClientQoS": 1, + "IotHubClient.MaxOutboundRetransmissionCount": 2, + "IotHubClient.ConnectionPoolSize": 400, + "IotHubClient.ConnectionIdleTimeout": "00:03:30", + "BlobSessionStatePersistenceProvider.StorageConnectionString": "UseDevelopmentStorage=true", + "BlobSessionStatePersistenceProvider.StorageContainerName": "mqtt-sessions", + "TableQos2StatePersistenceProvider.StorageConnectionString": "UseDevelopmentStorage=true", + "TableQos2StatePersistenceProvider.StorageTableName": "mqttqos2" + }, + "amqp": { + "scheme": "amqps", + "port": 5671 + }, + "IotHubConnectionPoolSize": 1, + "IotHubConnectionString": "", + "mqttTopicNameConversion": { + "InboundTemplates": [ + "devices/{deviceId}/messages/events/{params}/", + "devices/{deviceId}/messages/events/", + "devices/{deviceId}/modules/{moduleId}/messages/events/{params}/", + "devices/{deviceId}/modules/{moduleId}/messages/events/", + "$iothub/methods/res/{statusCode}/?$rid={correlationId}", + "$iothub/methods/res/{statusCode}/?$rid={correlationId}&foo={bar}" + ], + "OutboundTemplates": { + "C2D": "devices/{deviceId}/messages/devicebound", + "TwinEndpoint": "$iothub/twin/res/{statusCode}/?$rid={correlationId}", + "TwinDesiredPropertyUpdate": "$iothub/twin/PATCH/properties/desired/?$version={version}", + "ModuleEndpoint": "devices/{deviceId}/modules/{moduleId}/inputs/{inputName}" + } + }, + "routes": { + "r1": "FROM /* INTO $upstream" + }, + "storageFolder": "", + "storeAndForwardEnabled": true, + "usePersistentStorage": true, + "configSource": "twin", + "storeAndForward": { + "timeToLiveSecs": "-1" + }, + "RuntimeLogLevel": "info", + "ClientCertAuthEnabled": false, + "OptimizeForPerformance": true +} diff --git a/Microsoft.Azure.IoT.TypeEdge.Proxy/Microsoft.Azure.IoT.TypeEdge.Proxy.csproj b/Microsoft.Azure.IoT.TypeEdge.Proxy/Microsoft.Azure.IoT.TypeEdge.Proxy.csproj index 8042051..96cc5f2 100644 --- a/Microsoft.Azure.IoT.TypeEdge.Proxy/Microsoft.Azure.IoT.TypeEdge.Proxy.csproj +++ b/Microsoft.Azure.IoT.TypeEdge.Proxy/Microsoft.Azure.IoT.TypeEdge.Proxy.csproj @@ -1,15 +1,17 @@ - + Microsoft.Azure.IoT.TypeEdge.Proxy - 0.0.1 + 0.0.2 paloukari Microsoft true - ../build + ../Example/build netcoreapp2.1 + + Debug;Release;TemplateDevelopment diff --git a/Microsoft.Azure.IoT.TypeEdge.sln b/Microsoft.Azure.IoT.TypeEdge.sln index 4df9eda..b14bb75 100644 --- a/Microsoft.Azure.IoT.TypeEdge.sln +++ b/Microsoft.Azure.IoT.TypeEdge.sln @@ -7,11 +7,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Azure.IoT.TypeEdg EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Azure.IoT.TypeEdge.Host", "Microsoft.Azure.IoT.TypeEdge.Host\Microsoft.Azure.IoT.TypeEdge.Host.csproj", "{6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Azure.IoT.TypeEdge.Proxy", "Microsoft.Azure.IoT.TypeEdge.Proxy\Microsoft.Azure.IoT.TypeEdge.Proxy.csproj", "{5FC1E03A-7CD6-40AC-A893-2691DA8C9B5C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution CodeCoverage|Any CPU = CodeCoverage|Any CPU Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU + TemplateDevelopment|Any CPU = TemplateDevelopment|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {54587D56-7C22-4084-9321-84D57C2F6ECB}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU @@ -20,12 +23,24 @@ Global {54587D56-7C22-4084-9321-84D57C2F6ECB}.Debug|Any CPU.Build.0 = Debug|Any CPU {54587D56-7C22-4084-9321-84D57C2F6ECB}.Release|Any CPU.ActiveCfg = Release|Any CPU {54587D56-7C22-4084-9321-84D57C2F6ECB}.Release|Any CPU.Build.0 = Release|Any CPU + {54587D56-7C22-4084-9321-84D57C2F6ECB}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {54587D56-7C22-4084-9321-84D57C2F6ECB}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.CodeCoverage|Any CPU.ActiveCfg = Debug|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.CodeCoverage|Any CPU.Build.0 = Debug|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.Debug|Any CPU.Build.0 = Debug|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.Release|Any CPU.ActiveCfg = Release|Any CPU {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.Release|Any CPU.Build.0 = Release|Any CPU + {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {6F13F88C-B271-4DA6-9A35-5FD7FEADD3A3}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU + {5FC1E03A-7CD6-40AC-A893-2691DA8C9B5C}.CodeCoverage|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {5FC1E03A-7CD6-40AC-A893-2691DA8C9B5C}.CodeCoverage|Any CPU.Build.0 = TemplateDevelopment|Any CPU + {5FC1E03A-7CD6-40AC-A893-2691DA8C9B5C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FC1E03A-7CD6-40AC-A893-2691DA8C9B5C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5FC1E03A-7CD6-40AC-A893-2691DA8C9B5C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5FC1E03A-7CD6-40AC-A893-2691DA8C9B5C}.Release|Any CPU.Build.0 = Release|Any CPU + {5FC1E03A-7CD6-40AC-A893-2691DA8C9B5C}.TemplateDevelopment|Any CPU.ActiveCfg = TemplateDevelopment|Any CPU + {5FC1E03A-7CD6-40AC-A893-2691DA8C9B5C}.TemplateDevelopment|Any CPU.Build.0 = TemplateDevelopment|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Microsoft.Azure.IoT.TypeEdge/Microsoft.Azure.IoT.TypeEdge.csproj b/Microsoft.Azure.IoT.TypeEdge/Microsoft.Azure.IoT.TypeEdge.csproj index bfd83f1..bc14005 100644 --- a/Microsoft.Azure.IoT.TypeEdge/Microsoft.Azure.IoT.TypeEdge.csproj +++ b/Microsoft.Azure.IoT.TypeEdge/Microsoft.Azure.IoT.TypeEdge.csproj @@ -1,16 +1,17 @@ - + Microsoft.Azure.IoT.TypeEdge - 0.0.1 + 0.0.2 paloukari Microsoft - ../build + ../Example/build true netcoreapp2.1 Microsoft.Azure.IoT.TypeEdge Microsoft.Azure.IoT.TypeEdge + Debug;Release;TemplateDevelopment @@ -29,10 +30,4 @@ - - - Always - - - diff --git a/Microsoft.Azure.IoT.TypeEdge/Modules/EdgeModule.cs b/Microsoft.Azure.IoT.TypeEdge/Modules/EdgeModule.cs index f9f18a8..6c409f9 100644 --- a/Microsoft.Azure.IoT.TypeEdge/Modules/EdgeModule.cs +++ b/Microsoft.Azure.IoT.TypeEdge/Modules/EdgeModule.cs @@ -169,7 +169,7 @@ namespace Microsoft.Azure.IoT.TypeEdge.Modules { edgeMessage.Properties.Add(prop.Key, prop.Value); } - + await ioTHubModuleClient.SendEventAsync(outputName, edgeMessage); string messageString = Encoding.UTF8.GetString(message.GetBytes()); diff --git a/Microsoft.Azure.IoT.TypeEdge/Proxy/ModuleProxyBase.cs b/Microsoft.Azure.IoT.TypeEdge/Proxy/ModuleProxyBase.cs index 59d2f94..981ce34 100644 --- a/Microsoft.Azure.IoT.TypeEdge/Proxy/ModuleProxyBase.cs +++ b/Microsoft.Azure.IoT.TypeEdge/Proxy/ModuleProxyBase.cs @@ -35,7 +35,9 @@ namespace Microsoft.Azure.IoT.TypeEdge.Host || genericDef.IsAssignableFrom(typeof(Output<>)) || genericDef.IsAssignableFrom(typeof(ModuleTwin<>))) { - var value = Activator.CreateInstance(genericDef.MakeGenericType(invocation.Method.ReturnType.GenericTypeArguments), invocation.Method.Name.Replace("get_", ""), this); + var value = Activator.CreateInstance( + genericDef.MakeGenericType(invocation.Method.ReturnType.GenericTypeArguments), + invocation.Method.Name.Replace("get_", ""), this); invocation.ReturnValue = value; } } diff --git a/Microsoft.Azure.IoT.TypeEdge/Startup.cs b/Microsoft.Azure.IoT.TypeEdge/Startup.cs index 1e72301..342e8f3 100644 --- a/Microsoft.Azure.IoT.TypeEdge/Startup.cs +++ b/Microsoft.Azure.IoT.TypeEdge/Startup.cs @@ -16,7 +16,7 @@ using System.Threading.Tasks; namespace Microsoft.Azure.IoT.TypeEdge { public static class Startup - { + { public static async Task DockerEntryPoint(string[] args) { var services = new ServiceCollection().AddLogging(); diff --git a/Microsoft.Azure.IoT.TypeEdge/appsettings_compose.json b/Microsoft.Azure.IoT.TypeEdge/appsettings_compose.json deleted file mode 100644 index 7f70987..0000000 --- a/Microsoft.Azure.IoT.TypeEdge/appsettings_compose.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "appSettings": { - - }, - "RuntimeLogLevel": "info" -} diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000..99ddf3e --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/build/Microsoft.Azure.Devices.Edge.Agent.Core.1.0.0.nupkg b/build/Microsoft.Azure.Devices.Edge.Agent.Core.1.0.0.nupkg deleted file mode 100644 index c106d17..0000000 Binary files a/build/Microsoft.Azure.Devices.Edge.Agent.Core.1.0.0.nupkg and /dev/null differ diff --git a/build/Microsoft.Azure.Devices.Edge.Hub.CloudProxy.1.0.0.nupkg b/build/Microsoft.Azure.Devices.Edge.Hub.CloudProxy.1.0.0.nupkg deleted file mode 100644 index 609b20d..0000000 Binary files a/build/Microsoft.Azure.Devices.Edge.Hub.CloudProxy.1.0.0.nupkg and /dev/null differ diff --git a/build/Microsoft.Azure.IoT.TypeEdge.0.0.1.nupkg b/build/Microsoft.Azure.IoT.TypeEdge.0.0.1.nupkg deleted file mode 100644 index f53bab4..0000000 Binary files a/build/Microsoft.Azure.IoT.TypeEdge.0.0.1.nupkg and /dev/null differ diff --git a/build/Microsoft.Azure.IoT.TypeEdge.Host.0.0.1.nupkg b/build/Microsoft.Azure.IoT.TypeEdge.Host.0.0.1.nupkg deleted file mode 100644 index f50b01d..0000000 Binary files a/build/Microsoft.Azure.IoT.TypeEdge.Host.0.0.1.nupkg and /dev/null differ diff --git a/docker-compose.dcproj b/docker-compose.dcproj deleted file mode 100644 index e4522ac..0000000 --- a/docker-compose.dcproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - 2.1 - Linux - 8275d850-82cd-4204-a4be-c8ec3095e703 - - - - - docker-compose.yml - - - - - \ No newline at end of file diff --git a/docker-compose.override.yml b/docker-compose.override.yml deleted file mode 100644 index 8f665f6..0000000 --- a/docker-compose.override.yml +++ /dev/null @@ -1 +0,0 @@ -version: '3.4' \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 45e354f..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -version: '3.4' - -services: - - normalizetemperaturemodule: - image: ${DOCKER_REGISTRY}normalizetemperaturemodule - build: - context: . - dockerfile: Example/Modules/NormalizeTemperatureModule/Dockerfile - - - temperaturemodule: - image: ${DOCKER_REGISTRY}temperaturemodule - build: - context: . - dockerfile: Example/Modules/TemperatureModule/Dockerfile - - - thermostat.emulator: - image: ${DOCKER_REGISTRY}thermostatemulator - build: - context: . - dockerfile: Example/Thermostat.Emulator/Dockerfile -