Skip to content

Commit 405c700

Browse files
arturcicasbjornu
authored andcommitted
GH-1572 - Docker naming scheme
1 parent 14b7365 commit 405c700

File tree

8 files changed

+64
-47
lines changed

8 files changed

+64
-47
lines changed

README.md

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,23 @@ works out the [semantic version][semver] of the commit being built.
77

88
[![Gitter][gitter-badge]][gitter]
99
[![Build status][appveyor-badge]][appveyor]
10-
[![Build Status][travis-badge]][travis]
10+
<!-- [![Build Status][travis-badge]][travis] -->
1111
[![Build Status][azure-pipeline-badge]][azure-pipeline]
1212
[![codecov][codecov-badge]][codecov]
1313

14-
| | Stable | Pre-release |
15-
| ------------------------------------: | :---------------------------------------: | :---------------------------------------: |
16-
| **Docs** | [![Docs][docs-badge]][docs] | [![Docs][docs-pre-badge]][docs-pre] |
17-
| **GitHub Release** | [![GitHub release][gh-rel-badge]][gh-rel] | - |
18-
| **GitVersion.Portable** | [![Chocolatey][choco-badge]][choco] | [![Chocolatey][choco-pre-badge]][choco] |
19-
| **GitVersionCore** | [![NuGet][gvc-badge]][gvc] | [![NuGet][gvc-pre-badge]][gvc] |
20-
| **GitVersionTask** | [![NuGet][gvt-badge]][gvt] | [![NuGet][gvt-pre-badge]][gvt] |
21-
| **GitVersion.CommandLine** | [![NuGet][gvcl-badge]][gvcl] | [![NuGet][gvcl-pre-badge]][gvcl] |
22-
| **GitVersion.CommandLine.DotNetCore** | [![NuGet][gvcd-badge]][gvcd] | [![NuGet][gvcd-pre-badge]][gvcd] |
23-
| **GitVersion.Tool** | [![NuGet][gvgt-badge]][gvgt] | [![NuGet][gvgt-pre-badge]][gvgt] |
24-
| **Gem** | [![Gem][gem-badge]][gem] | - |
25-
| **Homebrew** | [![homebrew][brew-badge]][brew] | - |
26-
| **Docker DotnetCore** | [Dotnetcore][dockerhub-dotnetcore] | - |
27-
| **Docker FullFX** | [FullFX][dockerhub-fullfx] | - |
14+
| | Stable | Pre-release |
15+
| ------------------------------------: | :-------------------------------------------: | :---------------------------------------: |
16+
| **Docs** | [![Docs][docs-badge]][docs] | [![Docs][docs-pre-badge]][docs-pre] |
17+
| **GitHub Release** | [![GitHub release][gh-rel-badge]][gh-rel] | - |
18+
| **GitVersion.Portable** | [![Chocolatey][choco-badge]][choco] | [![Chocolatey][choco-pre-badge]][choco] |
19+
| **GitVersionCore** | [![NuGet][gvc-badge]][gvc] | [![NuGet][gvc-pre-badge]][gvc] |
20+
| **GitVersionTask** | [![NuGet][gvt-badge]][gvt] | [![NuGet][gvt-pre-badge]][gvt] |
21+
| **GitVersion.CommandLine** | [![NuGet][gvcl-badge]][gvcl] | [![NuGet][gvcl-pre-badge]][gvcl] |
22+
| **GitVersion.CommandLine.DotNetCore** | [![NuGet][gvcd-badge]][gvcd] | [![NuGet][gvcd-pre-badge]][gvcd] |
23+
| **GitVersion.Tool** | [![NuGet][gvgt-badge]][gvgt] | [![NuGet][gvgt-pre-badge]][gvgt] |
24+
| **Gem** | [![Gem][gem-badge]][gem] | - |
25+
| **Homebrew** | [![homebrew][brew-badge]][brew] | - |
26+
| **Docker** | [![Docker Pulls][dockerhub-badge]][dockerhub] | -
2827

2928
## Compatibility
3029
GitVersion works Windows, Linux, and Mac.
@@ -108,5 +107,5 @@ from The Noun Project
108107
[faq]: http://gitversion.readthedocs.org/en/latest/faq/
109108
[who]: http://gitversion.readthedocs.org/en/latest/who/
110109
[gv-in-action]: https://raw.github.com/GitTools/GitVersion/master/docs/img/README.png
111-
[dockerhub-fullfx]: https://hub.docker.com/r/gittools/gitversion-fullfx/
112-
[dockerhub-dotnetcore]: https://hub.docker.com/r/gittools/gitversion-dotnetcore/
110+
[dockerhub]: https://hub.docker.com/r/gittools/gitversion/
111+
[dockerhub-badge]: https://img.shields.io/docker/pulls/gittools/gitversion.svg

build.cake

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -403,13 +403,13 @@ Task("Docker-Build")
403403
{
404404
if (parameters.IsRunningOnWindows)
405405
{
406-
DockerBuild("windows", "dotnetcore", parameters);
407-
DockerBuild("windows", "fullfx", parameters);
406+
DockerBuild("windows", "nano", "netcoreapp2.1", parameters);
407+
DockerBuild("windows", "windowservercore", "net472", parameters);
408408
}
409409
else if (parameters.IsRunningOnLinux)
410410
{
411-
DockerBuild("linux", "dotnetcore", parameters);
412-
DockerBuild("linux", "fullfx", parameters);
411+
DockerBuild("linux", "debian", "netcoreapp2.1", parameters);
412+
DockerBuild("linux", "debian", "net472", parameters);
413413
}
414414
});
415415

@@ -626,13 +626,13 @@ Task("Publish-DockerHub")
626626

627627
if (parameters.IsRunningOnWindows)
628628
{
629-
DockerPush("windows", "dotnetcore", parameters);
630-
DockerPush("windows", "fullfx", parameters);
629+
DockerPush("windows", "nano", "netcoreapp2.1", parameters);
630+
DockerPush("windows", "windowservercore", "net472", parameters);
631631
}
632632
else if (parameters.IsRunningOnLinux)
633633
{
634-
DockerPush("linux", "dotnetcore", parameters);
635-
DockerPush("linux", "fullfx", parameters);
634+
DockerPush("linux", "debian", "netcoreapp2.1", parameters);
635+
DockerPush("linux", "debian", "net472", parameters);
636636
}
637637

638638
DockerLogout();

build/utils.cake

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -125,17 +125,17 @@ void PublishILRepackedGitVersionExe(bool includeLibGit2Sharp, DirectoryPath targ
125125
CopyFileToDirectory("./src/GitVersionExe/bin/" + configuration + "/" + dotnetVersion + "/GitVersion.xml", outputDir);
126126
}
127127

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

132-
var sourceDir = variant == "dotnetcore"
132+
var sourceDir = targetframework.StartsWith("netcoreapp")
133133
? parameters.Paths.Directories.ArtifactsBinNetCore.Combine("tools")
134134
: parameters.Paths.Directories.ArtifactsBinFullFxCmdline.Combine("tools");
135135

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

138-
var tags = GetDockerTags(platform, variant, parameters);
138+
var tags = GetDockerTags(os, distro, targetframework, parameters);
139139

140140
var buildSettings = new DockerImageBuildSettings
141141
{
@@ -150,28 +150,46 @@ void DockerBuild(string platform, string variant, BuildParameters parameters)
150150
DockerBuild(buildSettings, workDir.ToString());
151151
}
152152

153-
void DockerPush(string platform, string variant, BuildParameters parameters)
153+
void DockerPush(string os, string distro, string targetframework, BuildParameters parameters)
154154
{
155-
var tags = GetDockerTags(platform, variant, parameters);
155+
var tags = GetDockerTags(os, distro, targetframework, parameters);
156156

157157
foreach (var tag in tags)
158158
{
159159
DockerPush(tag);
160160
}
161161
}
162162

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

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

171-
tags.Add($"{name}:{platform}-{parameters.Version.SemVersion}");
172-
173-
if (variant == "dotnetcore" && parameters.IsStableRelease()) {
174-
tags.Add($"{name}:latest");
171+
if (distro == "debian" && targetframework == "netcoreapp2.1" || distro == "nano") {
172+
tags.AddRange(new[] {
173+
$"{name}:{parameters.Version.Version}-{os}",
174+
$"{name}:{parameters.Version.SemVersion}-{os}",
175+
176+
$"{name}:{parameters.Version.Version}-{targetframework}",
177+
$"{name}:{parameters.Version.SemVersion}-{targetframework}",
178+
179+
$"{name}:{parameters.Version.Version}-{os}-{targetframework}",
180+
$"{name}:{parameters.Version.SemVersion}-{os}-{targetframework}",
181+
});
182+
183+
if (parameters.IsStableRelease())
184+
{
185+
tags.AddRange(new[] {
186+
$"{name}:latest",
187+
$"{name}:latest-{os}",
188+
$"{name}:latest-{targetframework}",
189+
$"{name}:latest-{os}-{targetframework}",
190+
$"{name}:latest-{os}-{distro}-{targetframework}",
191+
});
192+
}
175193
}
176194

177195
return tags.ToArray();

src/Docker/Readme.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
# There are 4 variants of docker image :
1+
# There are 4 variants of docker image
22

33
- based on **microsoft/dotnet-framework:4.7.2-runtime** - Windows Full FX
44
- based on **microsoft/dotnet:2.1-runtime** - Windows dotnet core
5-
- based on **microsoft/dotnet-framework:4.7.2-runtime** - linux Full FX - on mono
6-
- based on **microsoft/dotnet:2.1-runtime** - linux dotnet core
5+
- based on **mono:5.18** - Linux Full FX - on mono
6+
- based on **microsoft/dotnet:2.1-runtime** - Linux dotnet core
77

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

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

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

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

src/Docker/linux/fullfx/Dockerfile renamed to src/Docker/linux/debian/net472/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM mono:5.14
1+
FROM mono:5.18
22
LABEL maintainers="GitTools Maintainers"
33
ARG contentFolder
44

0 commit comments

Comments
 (0)