Skip to content

Commit e2cf194

Browse files
committed
feat: support env var "DOCKERFILE"
1 parent b7e4cc3 commit e2cf194

1 file changed

Lines changed: 37 additions & 27 deletions

File tree

pkg/zeaburpack/main.go

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -101,38 +101,48 @@ func Build(opt *BuildOptions) error {
101101
return fmt.Errorf("build from git repository is not supported yet")
102102
}
103103

104-
src := afero.NewBasePathFs(afero.NewOsFs(), *opt.Path)
105-
submoduleName := lo.FromPtrOr(opt.SubmoduleName, "")
106-
config := plan.NewProjectConfigurationFromFs(src, submoduleName)
107-
108-
planner := plan.NewPlanner(
109-
&plan.NewPlannerOptions{
110-
Source: src,
111-
Config: config,
112-
SubmoduleName: submoduleName,
113-
},
114-
SupportedIdentifiers(config)...,
115-
)
116-
117-
t, m := planner.Plan()
118-
119-
PrintPlanAndMeta(t, m, opt.LogWriter)
104+
var dockerfile string
105+
var t types.PlanType
106+
var m types.PlanMeta
107+
108+
if os.Getenv("DOCKERFILE") != "" {
109+
dockerfile = os.Getenv("DOCKERFILE")
110+
t = types.PlanTypeDocker
111+
m = types.PlanMeta{"content": dockerfile}
112+
} else {
113+
src := afero.NewBasePathFs(afero.NewOsFs(), *opt.Path)
114+
submoduleName := lo.FromPtrOr(opt.SubmoduleName, "")
115+
config := plan.NewProjectConfigurationFromFs(src, submoduleName)
116+
117+
planner := plan.NewPlanner(
118+
&plan.NewPlannerOptions{
119+
Source: src,
120+
Config: config,
121+
SubmoduleName: submoduleName,
122+
},
123+
SupportedIdentifiers(config)...,
124+
)
125+
126+
t, m := planner.Plan()
127+
128+
PrintPlanAndMeta(t, m, opt.LogWriter)
129+
130+
dockerfile, err = generateDockerfile(
131+
&generateDockerfileOptions{
132+
planType: t,
133+
planMeta: m,
134+
},
135+
)
136+
if err != nil {
137+
opt.Log("Failed to generate Dockerfile: %s\n", err)
138+
return err
139+
}
140+
}
120141

121142
if opt.HandlePlanDetermined != nil {
122143
(*opt.HandlePlanDetermined)(t, m)
123144
}
124145

125-
dockerfile, err := generateDockerfile(
126-
&generateDockerfileOptions{
127-
planType: t,
128-
planMeta: m,
129-
},
130-
)
131-
if err != nil {
132-
opt.Log("Failed to generate Dockerfile: %s\n", err)
133-
return err
134-
}
135-
136146
// Remove .zeabur directory if exists
137147
_ = os.RemoveAll(path.Join(*opt.Path, ".zeabur"))
138148

0 commit comments

Comments
 (0)