From a6c4b7e862c8da6c1ddc2413fa2661d3172d4700 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Tue, 24 Nov 2020 23:41:40 +0100 Subject: [PATCH] fix: prevent error if "dockerfile" isn't set (#1917) * fix: prevent error if "dockerfile" isn't set * test: add test for #1917 --- internal/pipe/docker/docker.go | 6 +++--- internal/pipe/docker/docker_test.go | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/internal/pipe/docker/docker.go b/internal/pipe/docker/docker.go index 78dff2926d7..d1eec2c88f7 100644 --- a/internal/pipe/docker/docker.go +++ b/internal/pipe/docker/docker.go @@ -40,6 +40,9 @@ func (Pipe) Default(ctx *context.Context) error { if docker.Goarch == "" { docker.Goarch = "amd64" } + if docker.Dockerfile == "" { + docker.Dockerfile = "Dockerfile" + } for _, f := range docker.Files { if f == "." || strings.HasPrefix(f, ctx.Config.Dist) { return fmt.Errorf("invalid docker.files: can't be . or inside dist folder: %s", f) @@ -55,9 +58,6 @@ func (Pipe) Default(ctx *context.Context) error { ctx.Config.Builds[0].Binary, } } - if ctx.Config.Dockers[0].Dockerfile == "" { - ctx.Config.Dockers[0].Dockerfile = "Dockerfile" - } return nil } diff --git a/internal/pipe/docker/docker_test.go b/internal/pipe/docker/docker_test.go index d581aa92157..ee48fd4120e 100644 --- a/internal/pipe/docker/docker_test.go +++ b/internal/pipe/docker/docker_test.go @@ -725,6 +725,24 @@ func TestDefault(t *testing.T) { require.Empty(t, docker.Builds) } +func TestDefaultDockerfile(t *testing.T) { + var ctx = &context.Context{ + Config: config.Project{ + Builds: []config.Build{ + {}, + }, + Dockers: []config.Docker{ + {}, + {}, + }, + }, + } + require.NoError(t, Pipe{}.Default(ctx)) + require.Len(t, ctx.Config.Dockers, 2) + require.Equal(t, "Dockerfile", ctx.Config.Dockers[0].Dockerfile) + require.Equal(t, "Dockerfile", ctx.Config.Dockers[1].Dockerfile) +} + func TestDefaultBinaries(t *testing.T) { var ctx = &context.Context{ Config: config.Project{