MCPcopy Index your code
hub / github.com/dagger/dagger / Service

Method Service

toolchains/engine-dev/main.go:211–269  ·  view source on GitHub ↗

Create a test engine service

(
	ctx context.Context,
	name string,
	// +optional
	gpuSupport bool,
	// +optional
	sharedCache bool,
	// +optional
	metrics bool,
	// +optional
	version string,
)

Source from the content-addressed store, hash-verified

209
210// Create a test engine service
211func (dev *EngineDev) Service(
212 ctx context.Context,
213 name string,
214 // +optional
215 gpuSupport bool,
216 // +optional
217 sharedCache bool,
218 // +optional
219 metrics bool,
220 // +optional
221 version string,
222) (*dagger.Service, error) {
223 // Support 256 layers of nested dagger engines :-P
224 dev = dev.IncrementSubnet()
225 cacheVolumeName := "dagger-dev-engine-state"
226 if !sharedCache {
227 version, err := dag.Version().Version(ctx)
228 if err != nil {
229 return nil, err
230 }
231 if version != "" {
232 cacheVolumeName = "dagger-dev-engine-state-" + version
233 } else {
234 cacheVolumeName = "dagger-dev-engine-state-" + rand.Text()
235 }
236 if name != "" {
237 cacheVolumeName += "-" + name
238 }
239 }
240
241 devEngine, err := dev.Container(ctx, "", gpuSupport, version, "")
242 if err != nil {
243 return nil, err
244 }
245
246 devEngine = devEngine.
247 WithExposedPort(1234, dagger.ContainerWithExposedPortOpts{Protocol: dagger.NetworkProtocolTcp}).
248 WithMountedCache(distconsts.EngineDefaultStateDir, dag.CacheVolume(cacheVolumeName), dagger.ContainerWithMountedCacheOpts{
249 // Only one engine can safely use a state dir at a time. LOCKED keeps the
250 // cache identity stable while serializing concurrent users.
251 Sharing: dagger.CacheSharingModeLocked,
252 })
253
254 if metrics {
255 devEngine = devEngine.
256 WithEnvVariable("_EXPERIMENTAL_DAGGER_METRICS_ADDR", "0.0.0.0:9090").
257 WithEnvVariable("_EXPERIMENTAL_DAGGER_METRICS_CACHE_UPDATE_INTERVAL", "10s")
258 }
259
260 return devEngine.AsService(dagger.ContainerAsServiceOpts{
261 Args: []string{
262 "--addr", "tcp://0.0.0.0:1234",
263 "--network-name", "dagger-dev",
264 "--network-cidr", dev.NetworkCidr(),
265 },
266 UseEntrypoint: true,
267 InsecureRootCapabilities: true,
268 }), nil

Callers 3

PlaygroundMethod · 0.95
InstallClientMethod · 0.95
invokeFunction · 0.45

Calls 10

IncrementSubnetMethod · 0.95
ContainerMethod · 0.95
NetworkCidrMethod · 0.95
VersionMethod · 0.45
TextMethod · 0.45
WithMountedCacheMethod · 0.45
WithExposedPortMethod · 0.45
CacheVolumeMethod · 0.45
WithEnvVariableMethod · 0.45
AsServiceMethod · 0.45

Tested by

no test coverage detected