@@ -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