Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an Fedora 41 amd64 image and fix other Fedora Dockerfiles to use consistent formatting #1214

Merged
merged 2 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/fedora/39/amd64/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,8 @@ RUN dnf --setopt=install_weak_deps=False install -y \
&& dnf clean all

# Add MS package repo.
COPY microsoft.asc /tmp
RUN dnf config-manager --add-repo https://packages.microsoft.com/fedora/39/prod/ && \
rpm --import /tmp/microsoft.asc && \
rm /tmp/microsoft.asc
RUN dnf config-manager --add-repo https://packages.microsoft.com/fedora/39/prod/ \
&& rpm --import https://packages.microsoft.com/keys/microsoft.asc

# Install tools used by build automation.
RUN dnf --setopt=install_weak_deps=False install -y \
Expand Down Expand Up @@ -76,7 +74,9 @@ RUN dnf --setopt=install_weak_deps=False install -y \
&& dnf clean all

# Dependencies for Aspnetcore
RUN cd ~ && \
curl -sL https://rpm.nodesource.com/setup_20.x
RUN dnf install -y nodejs && dnf clean all
RUN cd ~ \
&& curl -sL https://rpm.nodesource.com/setup_20.x
RUN dnf --setopt=install_weak_deps=False install -y \
nodejs \
&& dnf clean all
ENV NO_UPDATE_NOTIFIER=true
19 changes: 0 additions & 19 deletions src/fedora/39/amd64/microsoft.asc

This file was deleted.

14 changes: 7 additions & 7 deletions src/fedora/40/amd64/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,8 @@ RUN dnf --setopt=install_weak_deps=False install -y \
&& dnf clean all

# Add MS package repo.
COPY microsoft.asc /tmp
RUN dnf config-manager --add-repo https://packages.microsoft.com/fedora/40/prod/ && \
rpm --import /tmp/microsoft.asc && \
rm /tmp/microsoft.asc
RUN dnf config-manager --add-repo https://packages.microsoft.com/fedora/40/prod/ \
&& rpm --import https://packages.microsoft.com/keys/microsoft.asc

# Install tools used by build automation.
RUN dnf --setopt=install_weak_deps=False install -y \
Expand Down Expand Up @@ -77,7 +75,9 @@ RUN dnf --setopt=install_weak_deps=False install -y \
&& dnf clean all

# Dependencies for Aspnetcore
RUN cd ~ && \
curl -sL https://rpm.nodesource.com/setup_20.x
RUN dnf install -y nodejs && dnf clean all
RUN cd ~ \
&& curl -sL https://rpm.nodesource.com/setup_20.x
RUN dnf --setopt=install_weak_deps=False install -y \
nodejs \
&& dnf clean all
ENV NO_UPDATE_NOTIFIER=true
19 changes: 0 additions & 19 deletions src/fedora/40/amd64/microsoft.asc

This file was deleted.

88 changes: 88 additions & 0 deletions src/fedora/41/amd64/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
FROM library/fedora:41

# Install the base toolchain we need to build anything (clang, cmake, make and the like)
# this does not include libraries that we need to compile different projects, we'd like
# them in a different layer.
RUN dnf --setopt=install_weak_deps=False install -y \
clang \
cmake \
dnf-plugins-core \
findutils \
gdb \
glibc-langpack-en \
lldb-devel \
llvm-devel \
make \
pigz \
python \
which \
&& dnf clean all

# Add MS package repo.
RUN dnf5 config-manager addrepo \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@omajid - I would appreciate your eyes on this. Is this the best way to register package.microsoft.com with dnf 5?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The docs say that the replacement for dnf config-manager --add-repo is dnf5 config-manager addrepo. So this does seem to be the correct 1-to-1 port of the old dnf command.

Copy link
Member

@omajid omajid Oct 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see that there's a repo file already at https://packages.microsoft.com/fedora/41/prod/config.repo. Can/should we download and use that directly instead of duplicating it here? (This approach would work with dnf as well).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I missed that PMC had a config.repo file. I will use that. Thanks.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made this change in 344a3af

--set=name=Microsoft \
--set=baseurl=https://packages.microsoft.com/fedora/41/prod/ \
--set=enabled=1 \
--set=gpgcheck=1 \
--set=gpgkey=https://packages.microsoft.com/keys/microsoft.asc \
&& dnf makecache

# Install tools used by build automation.
RUN dnf --setopt=install_weak_deps=False install -y \
azure-cli \
git \
jq \
tar \
procps \
zip \
&& dnf clean all

# Install the latest non-preview powershell release.
RUN LATEST_TAG=$(curl -L https://api.github.com/repos/powershell/powershell/releases/latest | jq -r '.tag_name') \
&& curl -L https://github.com/PowerShell/PowerShell/releases/download/$LATEST_TAG/powershell-${LATEST_TAG#*v}-linux-x64.tar.gz -o /tmp/powershell.tar.gz \
&& mkdir -p /opt/microsoft/powershell \
&& tar zxf /tmp/powershell.tar.gz -C /opt/microsoft/powershell \
&& chmod +x /opt/microsoft/powershell/pwsh \
&& ln -s /opt/microsoft/powershell/pwsh /usr/bin/pwsh \
&& rm -f /tmp/powershell.tar.gz

# Dependencies of CoreCLR, Mono and CoreFX.
RUN dnf --setopt=install_weak_deps=False install -y \
autoconf \
automake \
brotli-devel \
glibc-locale-source \
iputils \
jq \
krb5-devel \
libcurl-devel \
libgdiplus \
libicu-devel \
libomp-devel \
libtool \
libunwind-devel \
libuuid-devel \
lttng-ust-devel \
openssl-devel \
uuid-devel \
zlib-devel \
&& dnf clean all

# Dependencies for VMR/source-build tests
RUN dnf --setopt=install_weak_deps=False install -y \
elfutils \
file \
&& dnf clean all

# Install ICU package to support globalization
RUN dnf --setopt=install_weak_deps=False install -y \
icu \
&& dnf clean all

# Dependencies for Aspnetcore
RUN cd ~ \
&& curl -sL https://rpm.nodesource.com/setup_20.x
RUN dnf --setopt=install_weak_deps=False install -y \
nodejs \
&& dnf clean all
ENV NO_UPDATE_NOTIFIER=true
44 changes: 30 additions & 14 deletions src/fedora/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,40 @@
"name": "dotnet-buildtools/prereqs",
"images": [
{
"platforms": [{
"dockerfile": "src/fedora/39/amd64",
"os": "linux",
"osVersion": "fedora39",
"tags": {
"fedora-39": {}
"platforms": [
{
"dockerfile": "src/fedora/39/amd64",
"os": "linux",
"osVersion": "fedora39",
"tags": {
"fedora-39": {}
}
}
}]
]
},
{
"platforms": [{
"dockerfile": "src/fedora/40/amd64",
"os": "linux",
"osVersion": "fedora40",
"tags": {
"fedora-40": {}
"platforms": [
{
"dockerfile": "src/fedora/40/amd64",
"os": "linux",
"osVersion": "fedora40",
"tags": {
"fedora-40": {}
}
}
}]
]
},
{
"platforms": [
{
"dockerfile": "src/fedora/41/amd64",
"os": "linux",
"osVersion": "fedora41",
"tags": {
"fedora-41": {}
}
}
]
}
]
}
Expand Down