Skip to content

Commit

Permalink
check php docker image is available
Browse files Browse the repository at this point in the history
  • Loading branch information
coffee-cup committed Mar 4, 2025
1 parent c961677 commit 89f8201
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
4 changes: 4 additions & 0 deletions core/generate/image_step_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ func (b *ImageStepBuilder) Version(name resolver.PackageRef, version string, sou
b.Resolver.Version(name, version, source)
}

func (b *ImageStepBuilder) SetVersionAvailable(ref resolver.PackageRef, isVersionAvailable func(version string) bool) {
b.Resolver.SetVersionAvailable(ref, isVersionAvailable)
}

func (b *ImageStepBuilder) Name() string {
return b.DisplayName
}
Expand Down
15 changes: 14 additions & 1 deletion core/providers/php/php.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package php

import (
"fmt"
"net/http"
"strings"

"github.com/railwayapp/railpack/core/generate"
Expand Down Expand Up @@ -220,11 +221,23 @@ func (p *PhpProvider) phpImagePackage(ctx *generate.GenerateContext) (*generate.
}
}

// Ensure that the version is available on Docker Hub
imageStep.SetVersionAvailable(php, func(version string) bool {
image := getPhpImage(version)
url := fmt.Sprintf("https://registry.hub.docker.com/v2/repositories/library/php/tags/%s", strings.TrimPrefix(image, "php:"))
resp, err := http.Get(url)
if err != nil {
return false
}
defer resp.Body.Close()
return resp.StatusCode == http.StatusOK
})

return imageStep, nil
}

func getPhpImage(phpVersion string) string {
return fmt.Sprintf("php:%s-fpm", phpVersion)
return fmt.Sprintf("php:%s-fpm-bookworm", phpVersion)
}

func (p *PhpProvider) readComposerJson(ctx *generate.GenerateContext) (map[string]interface{}, error) {
Expand Down

0 comments on commit 89f8201

Please sign in to comment.