Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.devcontainer/*
.github/*
38 changes: 38 additions & 0 deletions .github/workflows/docker_build_and_push.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Docker Build and Push
permissions:
checks: write
contents: write
pull-requests: write
statuses: write
id-token: write
"on":
push:
jobs:
build_push_image:
runs-on: ubuntu-latest
needs: test_and_lint
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: launchdarkly/common-actions/init@main
- uses: launchdarkly/common-actions/short-sha@main
id: short-sha
- uses: launchdarkly/common-actions/aws-auth@main
with:
role-session-name: 'McpServer'
ecr-login: 'true'
iam-role-arn: 'arn:aws:iam::011970158519:role/mcp-server-ecr-publisher'
- uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
context: .
file: Dockerfile
platforms: linux/amd64,linux/arm64
tags: |
${{ format('{0}/launchdarkly/mcp:{1}', '709825985650.dkr.ecr.us-east-1.amazonaws.com', steps.short-sha.outputs.sha) }}
labels: |
org.opencontainers.image.title="mcp-server"
org.opencontainers.image.description="LaunchDarkly MCP Server"
org.opencontainers.image.version=${{ steps.short-sha.outputs.sha }}
push: ${{ github.ref == 'refs/heads/main' }}
25 changes: 25 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM node:24-bookworm-slim AS builder

WORKDIR /app

RUN npm install -g bun

COPY package*.json ./

RUN bun install

COPY . .

RUN npm run build

FROM gcr.io/distroless/nodejs24-debian12:970bec506fed86941afb61c21983f25b3b3fe68c

WORKDIR /app

# Copy built application from builder stage
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/bin ./bin
COPY --from=builder /app/package.json ./

EXPOSE 8080
ENTRYPOINT ["/nodejs/bin/node", "/app/bin/mcp-server.js", "start", "--transport", "sse", "--port", "8080"]