Skip to main content
Glama
fonoster

Fonoster MCP Server

Official
by fonoster
Dockerfile3.76 kB
## # Build stage ## FROM node:22-slim AS builder LABEL team="Fonoster Team <team@fonoster.com>" WORKDIR /work ENV DOCKERIZE_VERSION=v0.7.0 COPY package.json package-lock.json lerna.json ./ COPY mods ./mods COPY tsconfig.json ./ COPY .scripts ./.scripts RUN --mount=type=cache,target=/root/.npm \ apt-get update && apt-get install -y git wget \ && npm ci --prefer-offline --no-audit \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN npm run build RUN cd mods/apiserver \ && npm pack \ && npm install -g $(ls *.tgz) \ && cp schema.prisma /usr/local/lib/node_modules/@fonoster/apiserver/ \ && npx prisma generate --schema /usr/local/lib/node_modules/@fonoster/apiserver/schema.prisma \ && cd /work \ && npx prisma generate --schema mods/identity/schema.prisma \ && rm -rf /usr/local/lib/node_modules/@fonoster/apiserver/node_modules/@fonoster/identity/dist/generated \ && mv mods/identity/src/generated /usr/local/lib/node_modules/@fonoster/apiserver/node_modules/@fonoster/identity/dist \ && wget https://github.com/jwilder/dockerize/releases/download/"$DOCKERIZE_VERSION"/dockerize-linux-amd64-"$DOCKERIZE_VERSION".tar.gz \ && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-"$DOCKERIZE_VERSION".tar.gz \ && rm -rf dockerize-linux-amd64-"$DOCKERIZE_VERSION".tar.gz mods/apiserver/*.tgz # Clean up unnecessary files from node_modules to reduce size RUN cd /usr/local/lib/node_modules/@fonoster/apiserver/node_modules && \ find . -name "*.map" -type f -delete 2>/dev/null || true && \ find . -name "*.test.js" -o -name "*.test.ts" -o -name "*.spec.js" -o -name "*.spec.ts" -type f -delete 2>/dev/null || true && \ find . -type d \( -name "test" -o -name "tests" -o -name "__tests__" -o -name ".github" -o -name ".nyc_output" -o -name "coverage" -o -name "docs" -o -name "examples" \) -exec rm -rf {} + 2>/dev/null || true && \ find . -name "*.md" -o -name "LICENSE" -o -name "CHANGELOG*" -type f -delete 2>/dev/null || true && \ find . -name "*.ts" -not -path "*/node_modules/@types/*" -type f -delete 2>/dev/null || true && \ cd /work && \ rm -rf node_modules mods/*/node_modules mods/*/dist mods/*/.nyc_output mods/*/coverage 2>/dev/null || true ## # Run stage ## FROM node:22-slim RUN groupadd -g 1001 appuser && useradd -u 1001 -g appuser -m appuser WORKDIR /service COPY --from=builder --chown=appuser:appuser /usr/local/lib/node_modules/@fonoster/apiserver /usr/local/lib/node_modules/@fonoster/apiserver COPY --from=builder --chown=appuser:appuser /usr/local/bin/dockerize /usr/local/bin/dockerize COPY --from=builder --chown=appuser:appuser /work/mods/apiserver/migrations ./core/migrations COPY --from=builder --chown=appuser:appuser /work/mods/apiserver/schema.prisma ./core/schema.prisma COPY --from=builder --chown=appuser:appuser /work/mods/identity/migrations ./identity/migrations COPY --from=builder --chown=appuser:appuser /work/mods/identity/schema.prisma ./identity/schema.prisma RUN apt-get update && apt-get install -y ca-certificates \ && npm install -g prisma@6.8.2 npm@latest \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* USER appuser # Extract database host and port from APISERVER_DATABASE_URL environment variable CMD ["sh", "-c", "DB_HOST=$(echo $APISERVER_DATABASE_URL | sed -n 's/.*@\\([^:/]*\\)[:/].*/\\1/p') && DB_PORT=$(echo $APISERVER_DATABASE_URL | sed -n 's/.*:\\([0-9]*\\)\\/.*/\\1/p') && if [ -z \"$DB_PORT\" ]; then DB_PORT=5432; fi && dockerize -wait tcp://${DB_HOST}:${DB_PORT} -timeout 30s && cd /service/core && npx prisma migrate deploy && cd /service/identity && npx prisma migrate deploy && node /usr/local/lib/node_modules/@fonoster/apiserver/dist/core/seed.js && node /usr/local/lib/node_modules/@fonoster/apiserver/dist/index.js"]

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/fonoster/fonoster'

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