Skip to content

Instantly share code, notes, and snippets.

Avatar

Michael Simons MichaelSimons

View GitHub Profile
@MichaelSimons
MichaelSimons / Fedora.35.md
Created Mar 29, 2021
Fedora 35 - source-built .NET installed via Fedora native package feed
View Fedora.35.md

Fedora 35 - source-built .NET installed via Fedora native package feed

>dotnet --info
.NET SDK (reflecting any global.json):
 Version:   5.0.104
 Commit:    ca6b6acadb

Runtime Environment:
 OS Name:     fedora
@MichaelSimons
MichaelSimons / Proposal.md
Last active Jan 8, 2021
Proposed policy change for the NuGet CLI version included in the sdk images
View Proposal.md

Proposed policy change for the NuGet CLI version included in the sdk images

We are proposing a policy change for which NuGet CLI (i.e. NuGet.exe) version is included in the sdk images. The proposal is to align the NuGet CLI version with the version of NuGet bundled within MSBuild and the .NET CLI included in the sdk images.

If you are using the NuGet CLI you may be impacted by this change. If you are using NuGet via MSBuild or the .NET CLI you will not be affected by this change.

Details

Current Policy

@MichaelSimons
MichaelSimons / dotnet-core.csv
Last active Mar 11, 2020
dotnet docker layer info
View dotnet-core.csv
sha256:ac83054b3424623b270bcb14f800447c5fb834837a5a07610e6502b051eedb56 amd64 linux Debian 10 3.0.3 3.0/runtime-deps/buster-slim/amd64/Dockerfile dotnet/core/runtime-deps 3/11/2020 13:52
3.0.3-buster-slim amd64 linux Debian 10 3.0.3 3.0/runtime-deps/buster-slim/amd64/Dockerfile dotnet/core/runtime-deps 3/11/2020 13:52
3.0-buster-slim amd64 linux Debian 10 3.0.3 3.0/runtime-deps/buster-slim/amd64/Dockerfile dotnet/core/runtime-deps 3/11/2020 13:52
3.1.2-buster-slim amd64 linux Debian 10 3.0.3 3.0/runtime-deps/buster-slim/amd64/Dockerfile dotnet/core/runtime-deps 3/11/2020 13:52
3.1-buster-slim amd64 linux Debian 10 3.0.3 3.0/runtime-deps/buster-slim/amd64/Dockerfile dotnet/core/runtime-deps 3/11/2020 13:52
sha256:a06dd4359bed5b56bb2cf90765dd1e97b8a4c66b7634d8732b5fa7640e782560 amd64 linux Alpine 3.10 3.0.3 3.0/runtime-deps/alpine3.10/amd64/Dockerfile dotnet/core/runtime-deps 3/11/2020 13:52
3.0.3-alpine3.10 amd64 linux Alpine 3.10 3.0.3 3.0/runtime-deps/alpine3.10/amd64/Dockerfile dotnet/core/runtime-deps 3/11
View dotnet-framework.csv
We can make this file beautiful and searchable if this error is corrected: It looks like row 6 should actually have 8 columns, instead of 6. in line 5.
sha256:ca895ab76f1d3ab95f022cbca076e06b62daebafe61af34212bb3ed1fe982d78,amd64,windows,Windows Server 2016,4.8,4.8/runtime/windowsservercore-ltsc2016/Dockerfile,dotnet/framework/runtime,2020-03-11 13:52:00
4.8-20200211-windowsservercore-ltsc2016,amd64,windows,Windows Server 2016,4.8,4.8/runtime/windowsservercore-ltsc2016/Dockerfile,dotnet/framework/runtime,2020-03-11 13:52:00
4.8-windowsservercore-ltsc2016,amd64,windows,Windows Server 2016,4.8,4.8/runtime/windowsservercore-ltsc2016/Dockerfile,dotnet/framework/runtime,2020-03-11 13:52:00
sha256:4308c89ceac1a04af04590ecc56f2f3784ab1fdd21811a6426766cc817bcf9e5,amd64,windows,"Windows Server, version 1903",3.5,3.5/runtime/windowsservercore-1903/Dockerfile,dotnet/framework/runtime,2020-03-11 13:52:00
3.5-20200211-windowsservercore-1903,amd64,windows,"Windows Server, version 1903",3.5,3.5/runtime/windowsservercore-1903/Dockerfile,dotnet/framework/runtime,2020-03-11 13:52:00
3.5-windowsservercore-1903,amd64,windows,"Windows Server, version 1903",3.5,3.5/runtime/window
View dotnet-core-release-test-plan.md

.NET Core Release Test Plan

Releasing .NET Core is a complex process involving many components, dependencies on external systems and different teams. With the growing usage and success of .NET Core, it is critical that we are able to release with confidence. This requires us to take necessary steps to validate each release was completed as expected. Ideally we would always release the product without issues but that has not been the case so far. We need tests in place to identify issues so that they can be addressed as part of the release tic-toc before customers are impacted.

This document describes how to validate .NET Core releases. This document describes at a broad level what should be validated. It is not intended to describe the minute details.

The document breaks down the items to validate into the following broad groups.

  • Acquisition Artifacts - The primary ways customers acquire the product. e.g. Native Installers
  • Auxiliary Artifacts - Auxiliary artifacts used with product. e.g. NuGet Pac
@MichaelSimons
MichaelSimons / RetrievingDockerImageSizes.md
Last active Sep 30, 2021
Retrieving Docker Image Sizes
View RetrievingDockerImageSizes.md

Retrieving Docker Image Sizes

There are two metrics that are important to consider when discussing the size of Docker images.

  1. Compressed size - This is often referred to as the wire size. This affects how fast/slow images can be pulled from a registry. This impacts the first run experience on machines where images are not cached.
  2. Uncompressed size - This is often referred to as the size on disk. This affects how much local storage is required to support your Docker workloads.

The example commands shown below will work on Windows, MacOS, and Linux.

How to Measure the Compressed Size

@MichaelSimons
MichaelSimons / README.md
Created Oct 9, 2019
.NET Core Packaging to Support Docker Image Production
View gist:dd043c3690e00f6f3e93b032f54d8262

Image Tagging

The .NET Core image tags strive to align with the tagging practices utilized by the Official Images on Docker Hub.

Simple Tags

  1. <Major.Minor.Patch Version>-<OS>-<Architecture> - e.g. 2.2.5-alpine3.9, 2.1.11-stretch-slim-arm32v7, 3.0.0-nanoserver-1809, 5.0.0-preview1-disco-arm64
  2. <Major.Minor Version>-<OS>-<Architecture> - e.g. 2.2-alpine3.9, 2.1-stretch-slim-arm32v7, 3.0-nanoserver-1809

Shared Tags

View Docker-PS-Announcement.md

SDK Docker Images Contain PowerShell Core

Per requests from the community, PowerShell Core has been added to the .NET Core Docker SDK images. PowerShell Core is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. It includes a command-line shell, an associated scripting language and a framework for processing cmdlets.

If you are new to PowerShell and would like to learn more, we recommend reviewing the getting started documentation.

You can try out PowerShell Core by running the following Docker command:

docker run --rm mcr.microsoft.com/dotnet/core/sdk:3.0 pwsh -c Write-Host "Hello Powershell"
@MichaelSimons
MichaelSimons / Keeping_runtime-deps_up-to-date.MD
Last active Jan 17, 2018
How to ensure the runtime-deps Docker images stay in-sync with the product
View Keeping_runtime-deps_up-to-date.MD

Problem Statement

The runtime-deps dockerfile currently has a static list of what the runtime dependencies are. There is no link (e.g. tooling that automatically updates the dependencies) to the actual dependencies the runtime has. Because of this, there is a potential for the Docker image to get out of sync with the runtime. The Docker repo CI includes tests which build a basic self-contained hello world application and runs it in the runtime-deps image but this is not extensive enough to fully validate the right set of dependencies are included in the image.

FROM debian:stretch

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        ca-certificates \
        \