Add a separate ArchDockerFrom function for better template granularity
Here's an example diff I plan to apply over in the docs with this: (with an example output from `python`)
```diff
diff --git a/.template-helpers/generate-dockerfile-links-partial.tmpl b/.template-helpers/generate-dockerfile-links-partial.tmpl
index 5c13047a..996b9d60 100644
--- a/.template-helpers/generate-dockerfile-links-partial.tmpl
+++ b/.template-helpers/generate-dockerfile-links-partial.tmpl
@@ -4,21 +4,13 @@ This template defines the "Supported tags and Dockerfile links" portion of an im
*/ -}}
-{{- define "dockerfilePath" -}}
- {{- $dir := .ArchDirectory arch -}}
- {{- if ne $dir "." -}}
- {{- $dir -}}
- /
- {{- end -}}
- Dockerfile
-{{- end -}}
-
{{- range $i, $e := $.Entries -}}
- {{- if $e.HasArchitecture arch -}}
+ {{- $arch := ternary (ternary arch ($e.Architectures | first) ($e.HasArchitecture arch)) arch (eq arch "amd64") -}}
+ {{- if $e.HasArchitecture $arch -}}
{{- /* force bashbrew to "fetch" the GitCommit so that it is fully resolved */ -}}
- {{- $from := $.DockerFrom $e -}}
+ {{- $from := $.ArchDockerFrom $arch $e -}}
- {{- $gitRepo := $e.ArchGitRepo arch -}}
+ {{- $gitRepo := $e.ArchGitRepo $arch -}}
{{- $repoUrlBase := $gitRepo | replace "git://" "https://" | trimSuffixes ".git" -}}
{{- $isGitHub := hasPrefix "https://github.com/" $repoUrlBase -}}
@@ -28,9 +20,11 @@ This template defines the "Supported tags and Dockerfile links" portion of an im
- {{- "\t" -}}
{{- if $isGitHub -}} [ {{- end -}}
- ` {{- $e.Tags | join "`, `" -}} ` (* {{- template "dockerfilePath" $e -}} *)
- {{- $gitCommit := $e.ArchGitCommit arch -}}
- {{- if $isGitHub -}} ]( {{- $repoUrlBase -}} /blob/ {{- $gitCommit -}} / {{- template "dockerfilePath" $e -}} ) {{- end -}}
+ {{- $dir := .ArchDirectory $arch -}}
+ {{- $dockerfilePath := ternary "Dockerfile" (join "/" $dir "Dockerfile") (eq $dir ".") -}}
+ ` {{- $e.Tags | join "`, `" -}} ` (* {{- $dockerfilePath -}} *)
+ {{- $gitCommit := $e.ArchGitCommit $arch -}}
+ {{- if $isGitHub -}} ]( {{- $repoUrlBase -}} /blob/ {{- $gitCommit -}} / {{- $dockerfilePath -}} ) {{- end -}}
{{- /* TODO decide what to do (if anything) about non-GitHub repos with respect to URL */ -}}
{{- end -}}
{{- end -}}
diff --git a/python/README.md b/python/README.md
index c23f79f0..410b8525 100644
--- a/python/README.md
+++ b/python/README.md
@@ -22,6 +22,7 @@ WARNING:
- [`2.7.13-alpine3.6`, `2.7-alpine3.6`, `2-alpine3.6` (*2.7/alpine3.6/Dockerfile*)](e81758e60c/2.7/alpine3.6/Dockerfile)
- [`2.7.13-wheezy`, `2.7-wheezy`, `2-wheezy` (*2.7/wheezy/Dockerfile*)](1ca4a57b20/2.7/wheezy/Dockerfile)
- [`2.7.13-onbuild`, `2.7-onbuild`, `2-onbuild` (*2.7/onbuild/Dockerfile*)](7663560df7/2.7/onbuild/Dockerfile)
+- [`2.7.13-windowsservercore`, `2.7-windowsservercore`, `2-windowsservercore` (*2.7/windows/windowsservercore/Dockerfile*)](db2d58d730/2.7/windows/windowsservercore/Dockerfile)
- [`3.3.6`, `3.3` (*3.3/Dockerfile*)](88ba87d31a/3.3/Dockerfile)
- [`3.3.6-slim`, `3.3-slim` (*3.3/slim/Dockerfile*)](88ba87d31a/3.3/slim/Dockerfile)
- [`3.3.6-alpine`, `3.3-alpine` (*3.3/alpine/Dockerfile*)](88ba87d31a/3.3/alpine/Dockerfile)
@@ -36,16 +37,19 @@ WARNING:
- [`3.5.3-slim`, `3.5-slim` (*3.5/slim/Dockerfile*)](88ba87d31a/3.5/slim/Dockerfile)
- [`3.5.3-alpine`, `3.5-alpine` (*3.5/alpine/Dockerfile*)](88ba87d31a/3.5/alpine/Dockerfile)
- [`3.5.3-onbuild`, `3.5-onbuild` (*3.5/onbuild/Dockerfile*)](9a9021f213/3.5/onbuild/Dockerfile)
+- [`3.5.3-windowsservercore`, `3.5-windowsservercore` (*3.5/windows/windowsservercore/Dockerfile*)](db2d58d730/3.5/windows/windowsservercore/Dockerfile)
- [`3.6.1`, `3.6`, `3`, `latest` (*3.6/Dockerfile*)](88ba87d31a/3.6/Dockerfile)
- [`3.6.1-slim`, `3.6-slim`, `3-slim`, `slim` (*3.6/slim/Dockerfile*)](88ba87d31a/3.6/slim/Dockerfile)
- [`3.6.1-alpine`, `3.6-alpine`, `3-alpine`, `alpine` (*3.6/alpine/Dockerfile*)](88ba87d31a/3.6/alpine/Dockerfile)
- [`3.6.1-alpine3.6`, `3.6-alpine3.6`, `3-alpine3.6`, `alpine3.6` (*3.6/alpine3.6/Dockerfile*)](88ba87d31a/3.6/alpine3.6/Dockerfile)
- [`3.6.1-onbuild`, `3.6-onbuild`, `3-onbuild`, `onbuild` (*3.6/onbuild/Dockerfile*)](7eca63adca/3.6/onbuild/Dockerfile)
+- [`3.6.1-windowsservercore`, `3.6-windowsservercore`, `3-windowsservercore`, `windowsservercore` (*3.6/windows/windowsservercore/Dockerfile*)](db2d58d730/3.6/windows/windowsservercore/Dockerfile)
- [`3.6.2rc1`, `3.6-rc`, `rc` (*3.6-rc/Dockerfile*)](73d283d3dc/3.6-rc/Dockerfile)
- [`3.6.2rc1-slim`, `3.6-rc-slim`, `rc-slim` (*3.6-rc/slim/Dockerfile*)](73d283d3dc/3.6-rc/slim/Dockerfile)
- [`3.6.2rc1-alpine`, `3.6-rc-alpine`, `rc-alpine` (*3.6-rc/alpine/Dockerfile*)](73d283d3dc/3.6-rc/alpine/Dockerfile)
- [`3.6.2rc1-alpine3.6`, `3.6-rc-alpine3.6`, `rc-alpine3.6` (*3.6-rc/alpine3.6/Dockerfile*)](73d283d3dc/3.6-rc/alpine3.6/Dockerfile)
- [`3.6.2rc1-onbuild`, `3.6-rc-onbuild`, `rc-onbuild` (*3.6-rc/onbuild/Dockerfile*)](73d283d3dc/3.6-rc/onbuild/Dockerfile)
+- [`3.6.2rc1-windowsservercore`, `3.6-rc-windowsservercore`, `rc-windowsservercore` (*3.6-rc/windows/windowsservercore/Dockerfile*)](73d283d3dc/3.6-rc/windows/windowsservercore/Dockerfile)
# Quick reference
```
This commit is contained in:
parent
679388e80b
commit
7634587e56
|
|
@ -76,7 +76,7 @@ func cmdBuild(c *cli.Context) error {
|
|||
if err != nil {
|
||||
fmt.Printf("Building %s (%s)\n", cacheTag, r.EntryIdentifier(entry))
|
||||
|
||||
commit, err := r.fetchGitRepo(&entry)
|
||||
commit, err := r.fetchGitRepo(arch, &entry)
|
||||
if err != nil {
|
||||
return cli.NewMultiError(fmt.Errorf(`failed fetching git repo for %q (tags %q)`, r.RepoName, entry.TagsString()), err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,11 @@ import (
|
|||
var dockerFromCache = map[string]string{}
|
||||
|
||||
func (r Repo) DockerFrom(entry *manifest.Manifest2822Entry) (string, error) {
|
||||
commit, err := r.fetchGitRepo(entry)
|
||||
return r.ArchDockerFrom(arch, entry)
|
||||
}
|
||||
|
||||
func (r Repo) ArchDockerFrom(arch string, entry *manifest.Manifest2822Entry) (string, error) {
|
||||
commit, err := r.fetchGitRepo(arch, entry)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
|
@ -56,6 +60,7 @@ func (r Repo) DockerFrom(entry *manifest.Manifest2822Entry) (string, error) {
|
|||
return from, nil
|
||||
}
|
||||
|
||||
// TODO determine multi-stage-builds impact here (once official images are willing/able to support them; post-17.06 at the earliest)
|
||||
func dockerfileFrom(dockerfile io.Reader) (string, error) {
|
||||
scanner := bufio.NewScanner(dockerfile)
|
||||
for scanner.Scan() {
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ func gitNormalizeForTagUsage(text string) string {
|
|||
|
||||
var gitRepoCache = map[string]string{}
|
||||
|
||||
func (r Repo) fetchGitRepo(entry *manifest.Manifest2822Entry) (string, error) {
|
||||
func (r Repo) fetchGitRepo(arch string, entry *manifest.Manifest2822Entry) (string, error) {
|
||||
cacheKey := strings.Join([]string{
|
||||
entry.ArchGitRepo(arch),
|
||||
entry.ArchGitFetch(arch),
|
||||
|
|
|
|||
Loading…
Reference in New Issue