Documentation
¶
Index ¶
- Constants
- func BaseImageConfigurationExists(ctx context.Context, client registry.Client, ...) (bool, string, string, string, error)
- func BaseImageName(cudaVersion string, pythonVersion string, torchVersion string) string
- func CheckMajorMinorOnly(s string) bool
- func CheckMajorMinorPatch(s string) bool
- func CheckMajorOnly(s string) bool
- func GenerateCACertInstall(certData []byte, ...) (string, error)
- func ReadCACert() ([]byte, error)
- type AvailableBaseImageConfigurations
- type BaseImageConfiguration
- type BaseImageGenerator
- type CUDAVersion
- type Generator
- type PyTorchVersion
- type PythonVersion
- type StandardGenerator
- func (g *StandardGenerator) BaseImage(ctx context.Context) (string, error)
- func (g *StandardGenerator) BuildContexts() (map[string]string, error)
- func (g *StandardGenerator) BuildDir() (string, error)
- func (g *StandardGenerator) Cleanup() error
- func (g *StandardGenerator) GenerateDockerfileWithoutSeparateWeights(ctx context.Context) (string, error)
- func (g *StandardGenerator) GenerateInitialSteps(ctx context.Context) (string, error)
- func (g *StandardGenerator) GenerateModelBase(ctx context.Context) (string, error)
- func (g *StandardGenerator) GenerateModelBaseWithSeparateWeights(ctx context.Context, imageName string) (weightsBase string, dockerfile string, dockerignoreContents string, err error)
- func (g *StandardGenerator) GenerateWeightsManifest(ctx context.Context) (*weights.Manifest, error)
- func (g *StandardGenerator) IsUsingCogBaseImage() bool
- func (g *StandardGenerator) Name() string
- func (g *StandardGenerator) SetPrecompile(precompile bool)
- func (g *StandardGenerator) SetStrip(strip bool)
- func (g *StandardGenerator) SetUseCogBaseImage(useCogBaseImage bool)
- func (g *StandardGenerator) SetUseCogBaseImagePtr(useCogBaseImage *bool)
- func (g *StandardGenerator) SetUseCudaBaseImage(argumentValue string)
Constants ¶
const ( // CACertEnvVar is the environment variable that specifies the CA certificate to inject CACertEnvVar = "COG_CA_CERT" // CACertFilename is the filename used for the CA cert in the build context and container CACertFilename = "cog-ca-cert.crt" // CACertContainerPath is where the cert is installed in the container CACertContainerPath = "/usr/local/share/ca-certificates/" + CACertFilename // SystemCertBundle is the path to the system certificate bundle after update-ca-certificates SystemCertBundle = "/etc/ssl/certs/ca-certificates.crt" )
const CFlags = "ENV CFLAGS=\"-O3 -funroll-loops -fno-strict-aliasing -flto -S\""
const CogBaseImageName = "cog-base"
const DockerignoreHeader = `` /* 231-byte string literal not displayed */
const LDConfigCacheBuildCommand = "RUN find / -type f -name \"*python*.so\" -printf \"%h\\n\" | sort -u > /etc/ld.so.conf.d/cog.conf && ldconfig"
const MinimumCUDAVersion = "11.6"
const MinimumPythonVersion = "3.10"
const MinimumTorchVersion = "1.13.1"
const PrecompilePythonCommand = "" /* 247-byte string literal not displayed */
const STANDARD_GENERATOR_NAME = "STANDARD_GENERATOR"
const StripDebugSymbolsCommand = "find / -type f -name \"*python*.so\" -not -name \"*cpython*.so\" -exec strip -S {} \\;"
Variables ¶
This section is empty.
Functions ¶
func BaseImageConfigurationExists ¶ added in v0.9.7
func BaseImageName ¶ added in v0.9.7
func CheckMajorMinorOnly ¶ added in v0.14.0
func CheckMajorMinorPatch ¶ added in v0.14.0
func CheckMajorOnly ¶ added in v0.14.0
func GenerateCACertInstall ¶ added in v0.16.10
func GenerateCACertInstall(certData []byte, writeTemp func(filename string, contents []byte) ([]string, string, error)) (string, error)
GenerateCACertInstall generates the Dockerfile lines to install a CA certificate. It writes the cert to the build context and returns the Dockerfile lines.
The returned lines:
- COPY the cert to /usr/local/share/ca-certificates/
- RUN update-ca-certificates
- Set SSL_CERT_FILE and REQUESTS_CA_BUNDLE env vars
Parameters:
- certData: The PEM-encoded certificate data
- writeTemp: Function to write a file to the build context (returns COPY lines and container path)
Returns the Dockerfile lines to add, or error
func ReadCACert ¶ added in v0.16.10
ReadCACert reads the CA certificate from the COG_CA_CERT environment variable. It supports multiple input formats:
- File path: /path/to/cert.crt
- Directory: /path/to/certs/ (concatenates all *.crt and *.pem files)
- Inline PEM: -----BEGIN CERTIFICATE-----...
- Base64-encoded PEM: LS0tLS1CRUdJTi...
Returns:
- (nil, nil) if COG_CA_CERT is not set (no-op case)
- (certBytes, nil) if a valid certificate was found
- (nil, error) if the input is invalid
Types ¶
type AvailableBaseImageConfigurations ¶ added in v0.9.10
type AvailableBaseImageConfigurations struct {
PythonVersions []PythonVersion `json:"python_versions"`
}
type BaseImageConfiguration ¶ added in v0.9.7
type BaseImageConfiguration struct {
CUDAVersion string `json:"cuda_version" yaml:"cuda_version"`
PythonVersion string `json:"python_version" yaml:"python_version"`
TorchVersion string `json:"torch_version" yaml:"torch_version"`
}
func BaseImageConfigurations ¶ added in v0.9.7
func BaseImageConfigurations() []BaseImageConfiguration
BaseImageConfigurations returns a list of CUDA/Python/Torch versions
func (BaseImageConfiguration) MarshalJSON ¶ added in v0.9.7
func (b BaseImageConfiguration) MarshalJSON() ([]byte, error)
type BaseImageGenerator ¶ added in v0.9.7
type BaseImageGenerator struct {
// contains filtered or unexported fields
}
func NewBaseImageGenerator ¶ added in v0.9.7
func (*BaseImageGenerator) GenerateDockerfile ¶ added in v0.9.7
func (g *BaseImageGenerator) GenerateDockerfile(ctx context.Context) (string, error)
type CUDAVersion ¶ added in v0.9.10
type CUDAVersion struct {
Version string `json:"versions"`
}
type Generator ¶ added in v0.0.16
type Generator interface {
GenerateInitialSteps(ctx context.Context) (string, error)
SetUseCogBaseImage(bool)
SetUseCogBaseImagePtr(*bool)
GenerateModelBaseWithSeparateWeights(ctx context.Context, imageName string) (string, string, string, error)
Cleanup() error
SetStrip(bool)
SetPrecompile(bool)
SetUseCudaBaseImage(string)
IsUsingCogBaseImage() bool
BaseImage(ctx context.Context) (string, error)
GenerateWeightsManifest(ctx context.Context) (*weights.Manifest, error)
GenerateDockerfileWithoutSeparateWeights(ctx context.Context) (string, error)
GenerateModelBase(ctx context.Context) (string, error)
Name() string
BuildDir() (string, error)
BuildContexts() (map[string]string, error)
}
type PyTorchVersion ¶ added in v0.9.10
type PyTorchVersion struct {
Version string `json:"version"`
}
type PythonVersion ¶ added in v0.9.10
type PythonVersion struct {
Version string `json:"version"`
PyTorch []PyTorchVersion `json:"pytorch"`
CUDA []CUDAVersion `json:"cuda"`
}
type StandardGenerator ¶ added in v0.13.7
type StandardGenerator struct {
Config *config.Config
Dir string
// these are here to make this type testable
GOOS string
GOARCH string
// contains filtered or unexported fields
}
func NewStandardGenerator ¶ added in v0.13.7
func (*StandardGenerator) BaseImage ¶ added in v0.13.7
func (g *StandardGenerator) BaseImage(ctx context.Context) (string, error)
func (*StandardGenerator) BuildContexts ¶ added in v0.14.4
func (g *StandardGenerator) BuildContexts() (map[string]string, error)
func (*StandardGenerator) BuildDir ¶ added in v0.14.4
func (g *StandardGenerator) BuildDir() (string, error)
func (*StandardGenerator) Cleanup ¶ added in v0.13.7
func (g *StandardGenerator) Cleanup() error
func (*StandardGenerator) GenerateDockerfileWithoutSeparateWeights ¶ added in v0.13.7
func (g *StandardGenerator) GenerateDockerfileWithoutSeparateWeights(ctx context.Context) (string, error)
GenerateDockerfileWithoutSeparateWeights generates a Dockerfile that doesn't write model weights to a separate layer.
func (*StandardGenerator) GenerateInitialSteps ¶ added in v0.13.7
func (g *StandardGenerator) GenerateInitialSteps(ctx context.Context) (string, error)
func (*StandardGenerator) GenerateModelBase ¶ added in v0.13.7
func (g *StandardGenerator) GenerateModelBase(ctx context.Context) (string, error)
func (*StandardGenerator) GenerateModelBaseWithSeparateWeights ¶ added in v0.13.7
func (g *StandardGenerator) GenerateModelBaseWithSeparateWeights(ctx context.Context, imageName string) (weightsBase string, dockerfile string, dockerignoreContents string, err error)
GenerateModelBaseWithSeparateWeights creates the Dockerfile and .dockerignore file contents for model weights It returns four values: - weightsBase: The base image used for Dockerfile generation for model weights. - dockerfile: A string that represents the Dockerfile content generated by the function. - dockerignoreContents: A string that represents the .dockerignore content. - err: An error object if an error occurred during Dockerfile generation; otherwise nil.
func (*StandardGenerator) GenerateWeightsManifest ¶ added in v0.13.7
func (*StandardGenerator) IsUsingCogBaseImage ¶ added in v0.13.7
func (g *StandardGenerator) IsUsingCogBaseImage() bool
func (*StandardGenerator) Name ¶ added in v0.13.7
func (g *StandardGenerator) Name() string
func (*StandardGenerator) SetPrecompile ¶ added in v0.13.7
func (g *StandardGenerator) SetPrecompile(precompile bool)
func (*StandardGenerator) SetStrip ¶ added in v0.13.7
func (g *StandardGenerator) SetStrip(strip bool)
func (*StandardGenerator) SetUseCogBaseImage ¶ added in v0.13.7
func (g *StandardGenerator) SetUseCogBaseImage(useCogBaseImage bool)
func (*StandardGenerator) SetUseCogBaseImagePtr ¶ added in v0.13.7
func (g *StandardGenerator) SetUseCogBaseImagePtr(useCogBaseImage *bool)
func (*StandardGenerator) SetUseCudaBaseImage ¶ added in v0.13.7
func (g *StandardGenerator) SetUseCudaBaseImage(argumentValue string)