Skip to main content
Glama
dockerTest.ts1.38 kB
// local-tests/dockerTest.ts import Docker from 'dockerode'; import { waitForPort } from '../src/docker'; const docker = new Docker(); const IMAGE = 'nginx:stable-alpine'; const NAME = 'smoke-docker-test'; const HOST_PORT = 8080; /** Pull an image with progress handling, returned as a Promise */ function pullImage(image: string): Promise<void> { return new Promise((resolve, reject) => { docker.pull(image, (err: Error | null, stream: any) => { if (err) return reject(err); docker.modem.followProgress(stream, (pullErr: Error | null) => pullErr ? reject(pullErr) : resolve() ); }); }); } (async () => { try { console.log(`→ Pulling ${IMAGE} …`); await pullImage(IMAGE); console.log(`→ Starting ${NAME} …`); const container = await docker.createContainer({ name: NAME, Image: IMAGE, HostConfig: { PortBindings: { '80/tcp': [{ HostPort: String(HOST_PORT) }] }, }, }); await container.start(); await waitForPort('localhost', HOST_PORT, 15_000); console.log('✅ dockerTest passed – Nginx reachable'); } catch (e) { console.error('❌ dockerTest failed:', (e as Error).message); process.exitCode = 1; } finally { try { const c = docker.getContainer(NAME); await c.stop(); await c.remove({ force: true }); } catch {} } })();

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TheLunarCompany/lunar'

If you have feedback or need assistance with the MCP directory API, please join our Discord server