From 623c085bf224ff5c4476e3dc7dee5ccbc4cdb46a Mon Sep 17 00:00:00 2001
From: Khuram Khan <64149947+khkh-ms@users.noreply.github.com>
Date: Wed, 10 May 2023 22:23:33 +0300
Subject: [PATCH] Updating the docker files. (#3359)
---
.../Actions/LocalActions/InitAction.cs | 4 ++--
src/Azure.Functions.Cli/Azure.Functions.Cli.csproj | 6 ++++++
.../StaticResources/Dockerfile.dotnet | 3 ---
.../StaticResources/Dockerfile.dotnetIsolated | 3 ---
.../StaticResources/Dockerfile.node18 | 11 +++++++++++
.../StaticResources/Dockerfile.typescript.node18 | 12 ++++++++++++
.../StaticResources/StaticResources.cs | 4 ++++
7 files changed, 35 insertions(+), 8 deletions(-)
create mode 100644 src/Azure.Functions.Cli/StaticResources/Dockerfile.node18
create mode 100644 src/Azure.Functions.Cli/StaticResources/Dockerfile.typescript.node18
diff --git a/src/Azure.Functions.Cli/Actions/LocalActions/InitAction.cs b/src/Azure.Functions.Cli/Actions/LocalActions/InitAction.cs
index c1f9451b8..85ce040a5 100644
--- a/src/Azure.Functions.Cli/Actions/LocalActions/InitAction.cs
+++ b/src/Azure.Functions.Cli/Actions/LocalActions/InitAction.cs
@@ -398,11 +398,11 @@ private static async Task WriteDockerfile(WorkerRuntime workerRuntime, string la
{
if (language == Constants.Languages.TypeScript)
{
- await FileSystemHelpers.WriteFileIfNotExists("Dockerfile", await StaticResources.DockerfileTypescript);
+ await FileSystemHelpers.WriteFileIfNotExists("Dockerfile", await StaticResources.DockerfileTypescriptNode18);
}
else
{
- await FileSystemHelpers.WriteFileIfNotExists("Dockerfile", await StaticResources.DockerfileNode16);
+ await FileSystemHelpers.WriteFileIfNotExists("Dockerfile", await StaticResources.DockerfileNode18);
}
}
else if (workerRuntime == Helpers.WorkerRuntime.python)
diff --git a/src/Azure.Functions.Cli/Azure.Functions.Cli.csproj b/src/Azure.Functions.Cli/Azure.Functions.Cli.csproj
index 847c20596..c043a5bc8 100644
--- a/src/Azure.Functions.Cli/Azure.Functions.Cli.csproj
+++ b/src/Azure.Functions.Cli/Azure.Functions.Cli.csproj
@@ -100,6 +100,12 @@
$(AssemblyName).Dockerfile.typescript
+
+ $(AssemblyName).Dockerfile.node18
+
+
+ $(AssemblyName).Dockerfile.typescript.node18
+
$(AssemblyName).gitignore
diff --git a/src/Azure.Functions.Cli/StaticResources/Dockerfile.dotnet b/src/Azure.Functions.Cli/StaticResources/Dockerfile.dotnet
index db80c2884..80a87321f 100644
--- a/src/Azure.Functions.Cli/StaticResources/Dockerfile.dotnet
+++ b/src/Azure.Functions.Cli/StaticResources/Dockerfile.dotnet
@@ -1,8 +1,5 @@
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS installer-env
-# Build requires 3.1 SDK
-COPY --from=mcr.microsoft.com/dotnet/core/sdk:3.1 /usr/share/dotnet /usr/share/dotnet
-
COPY . /src/dotnet-function-app
RUN cd /src/dotnet-function-app && \
mkdir -p /home/site/wwwroot && \
diff --git a/src/Azure.Functions.Cli/StaticResources/Dockerfile.dotnetIsolated b/src/Azure.Functions.Cli/StaticResources/Dockerfile.dotnetIsolated
index 67c6b26a9..555a392c4 100644
--- a/src/Azure.Functions.Cli/StaticResources/Dockerfile.dotnetIsolated
+++ b/src/Azure.Functions.Cli/StaticResources/Dockerfile.dotnetIsolated
@@ -1,8 +1,5 @@
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS installer-env
-# Build requires 3.1 SDK
-COPY --from=mcr.microsoft.com/dotnet/core/sdk:3.1 /usr/share/dotnet /usr/share/dotnet
-
COPY . /src/dotnet-function-app
RUN cd /src/dotnet-function-app && \
mkdir -p /home/site/wwwroot && \
diff --git a/src/Azure.Functions.Cli/StaticResources/Dockerfile.node18 b/src/Azure.Functions.Cli/StaticResources/Dockerfile.node18
new file mode 100644
index 000000000..4d1fb979e
--- /dev/null
+++ b/src/Azure.Functions.Cli/StaticResources/Dockerfile.node18
@@ -0,0 +1,11 @@
+# To enable ssh & remote debugging on app service change the base image to the one below
+# FROM mcr.microsoft.com/azure-functions/node:4-node18-appservice
+FROM mcr.microsoft.com/azure-functions/node:4-node18
+
+ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
+ AzureFunctionsJobHost__Logging__Console__IsEnabled=true
+
+COPY . /home/site/wwwroot
+
+RUN cd /home/site/wwwroot && \
+ npm install
\ No newline at end of file
diff --git a/src/Azure.Functions.Cli/StaticResources/Dockerfile.typescript.node18 b/src/Azure.Functions.Cli/StaticResources/Dockerfile.typescript.node18
new file mode 100644
index 000000000..3dcb7b2d6
--- /dev/null
+++ b/src/Azure.Functions.Cli/StaticResources/Dockerfile.typescript.node18
@@ -0,0 +1,12 @@
+# To enable ssh & remote debugging on app service change the base image to the one below
+# FROM mcr.microsoft.com/azure-functions/node:4-node18-appservice
+FROM mcr.microsoft.com/azure-functions/node:4-node18
+
+ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
+ AzureFunctionsJobHost__Logging__Console__IsEnabled=true
+
+COPY . /home/site/wwwroot
+
+RUN cd /home/site/wwwroot && \
+ npm install && \
+ npm run build
\ No newline at end of file
diff --git a/src/Azure.Functions.Cli/StaticResources/StaticResources.cs b/src/Azure.Functions.Cli/StaticResources/StaticResources.cs
index a3a8b7baf..90ca993a5 100644
--- a/src/Azure.Functions.Cli/StaticResources/StaticResources.cs
+++ b/src/Azure.Functions.Cli/StaticResources/StaticResources.cs
@@ -58,8 +58,12 @@ public static async Task GetValue(string name)
public static Task DockerfileNode16 => GetValue("Dockerfile.node16");
+ public static Task DockerfileNode18 => GetValue("Dockerfile.node18");
+
public static Task DockerfileTypescript => GetValue("Dockerfile.typescript");
+ public static Task DockerfileTypescriptNode18 => GetValue("Dockerfile.typescript.node18");
+
public static Task DockerIgnoreFile => GetValue("dockerignore");
public static Task VsCodeExtensionsJson => GetValue("vscode.extensions.json");