Skip to content

Commit 567e2a5

Browse files
DEV: parameterize config filename
Parameterize which filename to write to (write config) and which file is copied from (dockerfile)
1 parent 9835070 commit 567e2a5

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

launcher_go/v2/cli_build.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ func (r *DockerBuildCmd) Run(cli *Cli, ctx *context.Context) error {
3636
if err := os.MkdirAll(dir, 0755); err != nil && !os.IsExist(err) {
3737
return err
3838
}
39-
if err := config.WriteYamlConfig(dir); err != nil {
39+
configFile := "config.yaml"
40+
if err := config.WriteYamlConfig(dir, configFile); err != nil {
4041
return err
4142
}
4243

@@ -48,7 +49,7 @@ func (r *DockerBuildCmd) Run(cli *Cli, ctx *context.Context) error {
4849
builder := docker.DockerBuilder{
4950
Config: config,
5051
Ctx: ctx,
51-
Stdin: strings.NewReader(config.Dockerfile(pupsArgs, r.BakeEnv)),
52+
Stdin: strings.NewReader(config.Dockerfile(pupsArgs, r.BakeEnv, configFile)),
5253
Dir: dir,
5354
Namespace: namespace,
5455
ImageTag: r.Tag,

launcher_go/v2/config/config.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,10 @@ func (config *Config) Yaml() string {
130130
return strings.Join(config.rawYaml, "_FILE_SEPERATOR_")
131131
}
132132

133-
func (config *Config) Dockerfile(pupsArgs string, bakeEnv bool) string {
133+
func (config *Config) Dockerfile(pupsArgs string, bakeEnv bool, configFile string) string {
134+
if configFile == "" {
135+
configFile = "config.yaml"
136+
}
134137
builder := strings.Builder{}
135138
builder.WriteString("ARG dockerfile_from_image=" + config.Base_Image + "\n")
136139
builder.WriteString("FROM ${dockerfile_from_image}\n")
@@ -139,16 +142,20 @@ func (config *Config) Dockerfile(pupsArgs string, bakeEnv bool) string {
139142
builder.WriteString(config.dockerfileEnvs() + "\n")
140143
}
141144
builder.WriteString(config.dockerfileExpose() + "\n")
142-
builder.WriteString("COPY config.yaml /temp-config.yaml\n")
145+
builder.WriteString("COPY " + configFile + " /temp-config.yaml\n")
143146
builder.WriteString("RUN " +
144147
"cat /temp-config.yaml | /usr/local/bin/pups " + pupsArgs + " --stdin " +
145148
"&& rm /temp-config.yaml\n")
146149
builder.WriteString("CMD [\"" + config.BootCommand() + "\"]")
147150
return builder.String()
148151
}
149152

150-
func (config *Config) WriteYamlConfig(dir string) error {
151-
file := strings.TrimRight(dir, "/") + "/config.yaml"
153+
154+
func (config *Config) WriteYamlConfig(dir string, configFile string) error {
155+
if configFile == "" {
156+
configFile = "config.yaml"
157+
}
158+
file := strings.TrimRight(dir, "/") + "/" + configFile
152159
if err := os.WriteFile(file, []byte(config.Yaml()), 0660); err != nil {
153160
return errors.New("error writing config file " + file)
154161
}

launcher_go/v2/config/config_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var _ = Describe("Config", func() {
2929
})
3030

3131
It("can write raw yaml config", func() {
32-
err := conf.WriteYamlConfig(testDir)
32+
err := conf.WriteYamlConfig(testDir, "config.yaml")
3333
Expect(err).To(BeNil())
3434
out, err := os.ReadFile(testDir + "/config.yaml")
3535
Expect(err).To(BeNil())
@@ -38,7 +38,7 @@ var _ = Describe("Config", func() {
3838
})
3939

4040
It("can convert pups config to dockerfile format", func() {
41-
dockerfile := conf.Dockerfile("", false)
41+
dockerfile := conf.Dockerfile("", false, "config.yaml")
4242
Expect(dockerfile).To(ContainSubstring("ARG DISCOURSE_DEVELOPER_EMAILS"))
4343
Expect(dockerfile).To(ContainSubstring("RUN cat /temp-config.yaml"))
4444
Expect(dockerfile).To(ContainSubstring("EXPOSE 80"))

0 commit comments

Comments
 (0)