Skip to content

Commit

Permalink
GitToolsGH-1572 - Docker naming scheme
Browse files Browse the repository at this point in the history
  • Loading branch information
arturcic committed Feb 23, 2019
1 parent dd92719 commit a02b7b2
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 30 deletions.
16 changes: 8 additions & 8 deletions build.cake
Original file line number Diff line number Diff line change
Expand Up @@ -403,13 +403,13 @@ Task("Docker-Build")
{
if (parameters.IsRunningOnWindows)
{
DockerBuild("windows", "dotnetcore", parameters);
DockerBuild("windows", "fullfx", parameters);
DockerBuild("windows", "nano", "netcoreapp2.1", parameters);
DockerBuild("windows", "windowservercore", "net472", parameters);
}
else if (parameters.IsRunningOnLinux)
{
DockerBuild("linux", "dotnetcore", parameters);
DockerBuild("linux", "fullfx", parameters);
DockerBuild("linux", "debian", "netcoreapp2.1", parameters);
DockerBuild("linux", "debian", "net472", parameters);
}
});

Expand Down Expand Up @@ -626,13 +626,13 @@ Task("Publish-DockerHub")

if (parameters.IsRunningOnWindows)
{
DockerPush("windows", "dotnetcore", parameters);
DockerPush("windows", "fullfx", parameters);
DockerPush("windows", "nano", "netcoreapp2.1", parameters);
DockerPush("windows", "windowservercore", "net472", parameters);
}
else if (parameters.IsRunningOnLinux)
{
DockerPush("linux", "dotnetcore", parameters);
DockerPush("linux", "fullfx", parameters);
DockerPush("linux", "debian", "netcoreapp2.1", parameters);
DockerPush("linux", "debian", "net472", parameters);
}

DockerLogout();
Expand Down
46 changes: 32 additions & 14 deletions build/utils.cake
Original file line number Diff line number Diff line change
Expand Up @@ -125,17 +125,17 @@ void PublishILRepackedGitVersionExe(bool includeLibGit2Sharp, DirectoryPath targ
CopyFileToDirectory("./src/GitVersionExe/bin/" + configuration + "/" + dotnetVersion + "/GitVersion.xml", outputDir);
}

void DockerBuild(string platform, string variant, BuildParameters parameters)
void DockerBuild(string os, string distro, string targetframework, BuildParameters parameters)
{
var workDir = DirectoryPath.FromString($"./src/Docker/{platform}/{variant}");
var workDir = DirectoryPath.FromString($"./src/Docker/{os}/{distro}/{targetframework}");

var sourceDir = variant == "dotnetcore"
var sourceDir = targetframework.StartsWith("netcoreapp")
? parameters.Paths.Directories.ArtifactsBinNetCore.Combine("tools")
: parameters.Paths.Directories.ArtifactsBinFullFxCmdline.Combine("tools");

CopyDirectory(sourceDir, workDir.Combine("content"));

var tags = GetDockerTags(platform, variant, parameters);
var tags = GetDockerTags(os, distro, targetframework, parameters);

var buildSettings = new DockerImageBuildSettings
{
Expand All @@ -150,28 +150,46 @@ void DockerBuild(string platform, string variant, BuildParameters parameters)
DockerBuild(buildSettings, workDir.ToString());
}

void DockerPush(string platform, string variant, BuildParameters parameters)
void DockerPush(string os, string distro, string targetframework, BuildParameters parameters)
{
var tags = GetDockerTags(platform, variant, parameters);
var tags = GetDockerTags(os, distro, targetframework, parameters);

foreach (var tag in tags)
{
DockerPush(tag);
}
}

string[] GetDockerTags(string platform, string variant, BuildParameters parameters) {
var name = $"gittools/gitversion-{variant}";
string[] GetDockerTags(string os, string distro, string targetframework, BuildParameters parameters) {
var name = $"gittools/gitversion";

var tags = new List<string> {
$"{name}:{platform}",
$"{name}:{platform}-{parameters.Version.Version}"
$"{name}:{parameters.Version.Version}-{os}-{distro}-{targetframework}",
$"{name}:{parameters.Version.SemVersion}-{os}-{distro}-{targetframework}",
};

tags.Add($"{name}:{platform}-{parameters.Version.SemVersion}");

if (variant == "dotnetcore" && parameters.IsStableRelease()) {
tags.Add($"{name}:latest");
if (distro == "debian" && targetframework == "netcoreapp2.1" || distro == "nano") {
tags.AddRange(new[] {
$"{name}:{parameters.Version.Version}-{os}",
$"{name}:{parameters.Version.SemVersion}-{os}",

$"{name}:{parameters.Version.Version}-{targetframework}",
$"{name}:{parameters.Version.SemVersion}-{targetframework}",

$"{name}:{parameters.Version.Version}-{os}-{targetframework}",
$"{name}:{parameters.Version.SemVersion}-{os}-{targetframework}",
});

if (parameters.IsStableRelease())
{
tags.AddRange(new[] {
$"{name}:latest",
$"{name}:latest-{os}",
$"{name}:latest-{targetframework}",
$"{name}:latest-{os}-{targetframework}",
$"{name}:latest-{os}-{distro}-{targetframework}",
});
}
}

return tags.ToArray();
Expand Down
14 changes: 7 additions & 7 deletions src/Docker/Readme.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# There are 4 variants of docker image :
# There are 4 variants of docker image

- based on **microsoft/dotnet-framework:4.7.2-runtime** - Windows Full FX
- based on **microsoft/dotnet:2.1-runtime** - Windows dotnet core
- based on **microsoft/dotnet-framework:4.7.2-runtime** - linux Full FX - on mono
- based on **microsoft/dotnet:2.1-runtime** - linux dotnet core
- based on **mono:5.18** - Linux Full FX - on mono
- based on **microsoft/dotnet:2.1-runtime** - Linux dotnet core

To run on windows container run this
`docker run --rm -v "$(pwd):c:/repo" gittools/gitversion-fullfx:windows-4.0.0 c:/repo`
`docker run --rm -v "$(pwd):c:/repo" gittools/gitversion:latest-windows-net472 c:/repo`

`docker run --rm -v "$(pwd):c:/repo" gittools/gitversion-dotnetcore:windows-4.0.0 c:/repo`
`docker run --rm -v "$(pwd):c:/repo" gittools/gitversion:latest-windows-netcoreapp2.1 c:/repo`

To run on linux container run this
`docker run --rm -v "$(pwd):/repo" gittools/gitversion-fullfx:linux-4.0.0 /repo`
`docker run --rm -v "$(pwd):/repo" gittools/gitversion:latest-linux-net472 /repo`

`docker run --rm -v "$(pwd):/repo" gittools/gitversion-dotnetcore:linux-4.0.0 /repo`
`docker run --rm -v "$(pwd):/repo" gittools/gitversion:latest-linux-netcoreapp2.1 /repo`
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mono:5.14
FROM mono:5.18
LABEL maintainers="GitTools Maintainers"
ARG contentFolder

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit a02b7b2

Please sign in to comment.