Skip to content

Commit d3b4298

Browse files
authored
Add dnx symlink to /usr/bin in .NET SDK images (#6554)
1 parent c41a7e9 commit d3b4298

23 files changed

+109
-38
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{{
2+
_ Creates a symbolic link at "to" which links to "from"
3+
4+
ARGS:
5+
from: The target file or directory to link to
6+
to: Where to create the symbolic link
7+
8+
}}ln -s {{ARGS["from"]}} {{ARGS["to"]}}

eng/dockerfile-templates/aspnet/Dockerfile.linux-composite

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,7 @@ ENTRYPOINT ["/usr/bin/dotnet"]
6363
CMD ["--info"]^
6464
else:
6565
COPY --from=installer ["/dotnet", "/usr/share/dotnet"]
66-
RUN {{InsertTemplate("../runtime/Dockerfile.linux.symlink")}}}}
66+
RUN {{InsertTemplate("../Dockerfile.linux.symlink", [
67+
"from": "/usr/share/dotnet/dotnet",
68+
"to": "/usr/bin/dotnet"
69+
])}}}}

eng/dockerfile-templates/runtime/Dockerfile.linux

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,10 @@ RUN {{InsertTemplate("../Dockerfile.download-dotnet", [
5454
if isDistroless:
5555

5656
RUN mkdir /dotnet-symlink \
57-
&& ln -s /usr/share/dotnet/dotnet /dotnet-symlink/dotnet}}
57+
&& {{InsertTemplate("../Dockerfile.linux.symlink", [
58+
"from": "/usr/share/dotnet/dotnet",
59+
"to": "/dotnet-symlink/dotnet"
60+
])}}}}
5861

5962

6063
# .NET runtime image
@@ -73,4 +76,7 @@ CMD ["--info"]^
7376
else:
7477
COPY --from=installer ["/dotnet", "/usr/share/dotnet"]
7578

76-
RUN {{InsertTemplate("Dockerfile.linux.symlink")}}}}
79+
RUN {{InsertTemplate("../Dockerfile.linux.symlink", [
80+
"from": "/usr/share/dotnet/dotnet",
81+
"to": "/usr/bin/dotnet"
82+
])}}}}

eng/dockerfile-templates/runtime/Dockerfile.linux.symlink

Lines changed: 0 additions & 1 deletion
This file was deleted.

eng/dockerfile-templates/sdk/Dockerfile.linux

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
set isPowerShellSupported to !(isAlpine && ARCH_SHORT != "x64") ^
1919
set includePowerShellVars to isPowerShellSupported || dotnetVersion = "8.0" || dotnetVersion = "9.0" ^
2020

21+
set dnxIsSupported to dotnetVersion != "8.0" && dotnetVersion != "9.0" ^
22+
2123
set pkgs to filter(
2224
when(isAlpine,
2325
when(dotnetVersion = "8.0",
@@ -64,7 +66,7 @@
6466
"./LICENSE.txt",
6567
"./ThirdPartyNotices.txt"
6668
]^
67-
if (dotnetVersion != "8.0" && dotnetVersion != "9.0"):{{
69+
if (dnxIsSupported):{{
6870
set sdkExtractPaths to cat(["./dnx"], sdkExtractPaths)
6971
}}^_
7072

@@ -99,6 +101,14 @@ RUN {{InsertTemplate("../Dockerfile.linux.install-pkgs",
99101

100102
COPY --from=installer ["/dotnet", "/usr/share/dotnet"]
101103

102-
{{InsertTemplate("Dockerfile.linux.first-run")}}{{if isPowerShellSupported:
104+
{{if dnxIsSupported:RUN {{
105+
InsertTemplate("../Dockerfile.linux.symlink", [
106+
"from": "/usr/share/dotnet/dnx",
107+
"to": "/usr/bin/dnx"
108+
])
109+
}} \
110+
}}{{InsertTemplate("Dockerfile.linux.first-run", [
111+
"append-cmd": dnxIsSupported
112+
], when(dnxIsSupported, " ", ""))}}{{if isPowerShellSupported:
103113

104114
{{InsertTemplate("Dockerfile.linux.install-powershell")}}}}

src/sdk/10.0/alpine3.22/amd64/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ RUN apk add --upgrade --no-cache \
4646

4747
COPY --from=installer ["/dotnet", "/usr/share/dotnet"]
4848

49-
# Trigger first run experience by running arbitrary cmd
50-
RUN dotnet help
49+
RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \
50+
# Trigger first run experience by running arbitrary cmd
51+
&& dotnet help
5152

5253
# Install PowerShell global tool
5354
RUN powershell_version=7.6.0-preview.4 \

src/sdk/10.0/alpine3.22/arm32v7/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,6 @@ RUN apk add --upgrade --no-cache \
4242

4343
COPY --from=installer ["/dotnet", "/usr/share/dotnet"]
4444

45-
# Trigger first run experience by running arbitrary cmd
46-
RUN dotnet help
45+
RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \
46+
# Trigger first run experience by running arbitrary cmd
47+
&& dotnet help

src/sdk/10.0/alpine3.22/arm64v8/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,6 @@ RUN apk add --upgrade --no-cache \
4242

4343
COPY --from=installer ["/dotnet", "/usr/share/dotnet"]
4444

45-
# Trigger first run experience by running arbitrary cmd
46-
RUN dotnet help
45+
RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \
46+
# Trigger first run experience by running arbitrary cmd
47+
&& dotnet help

src/sdk/10.0/azurelinux3.0/amd64/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ RUN tdnf install -y \
4646

4747
COPY --from=installer ["/dotnet", "/usr/share/dotnet"]
4848

49-
# Trigger first run experience by running arbitrary cmd
50-
RUN dotnet help
49+
RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \
50+
# Trigger first run experience by running arbitrary cmd
51+
&& dotnet help
5152

5253
# Install PowerShell global tool
5354
RUN powershell_version=7.6.0-preview.4 \

src/sdk/10.0/azurelinux3.0/arm64v8/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,9 @@ RUN tdnf install -y \
4646

4747
COPY --from=installer ["/dotnet", "/usr/share/dotnet"]
4848

49-
# Trigger first run experience by running arbitrary cmd
50-
RUN dotnet help
49+
RUN ln -s /usr/share/dotnet/dnx /usr/bin/dnx \
50+
# Trigger first run experience by running arbitrary cmd
51+
&& dotnet help
5152

5253
# Install PowerShell global tool
5354
RUN powershell_version=7.6.0-preview.4 \

0 commit comments

Comments
 (0)