GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — stackrox-mcp/Dockerfile at main · stackrox/stackrox-mcp

Expand file tree

/

Dockerfile

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
74 lines (55 loc) · 2.07 KB
/

Dockerfile

Copy path

File metadata and controls

74 lines (55 loc) · 2.07 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Multi-stage Dockerfile for StackRox MCP Server
# Used images
ARG GOLANG_BUILDER=registry.access.redhat.com/ubi10/go-toolset:1.26
ARG MCP_SERVER_BASE_IMAGE=registry.access.redhat.com/ubi10/ubi-micro:10.1
# Build arguments for multi-arch build support
ARG BUILDPLATFORM
# Stage 1: Builder - Build the Go binary
FROM --platform=$BUILDPLATFORM $GOLANG_BUILDER AS builder
# Build arguments for multi-arch target
ARG TARGETOS
ARG TARGETARCH
# Build arguments for application version and branding
ARG VERSION=dev
ARG SERVER_NAME=stackrox-mcp
ARG PRODUCT_DISPLAY_NAME=StackRox
# Set working directory
WORKDIR /workspace
# Copy go module files first for better layer caching
COPY go.mod go.sum ./
# Download dependencies (cached layer)
RUN go mod download
# Copy source code
COPY . .
# Build the binary with optimizations
# Output to "/tmp" directory, because user can not copy built binary to "/workspace"
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
go build \
-ldflags="-w -s \
-X 'github.com/stackrox/stackrox-mcp/internal/config.version=${VERSION}' \
-X 'github.com/stackrox/stackrox-mcp/internal/config.serverName=${SERVER_NAME}' \
-X 'github.com/stackrox/stackrox-mcp/internal/config.productDisplayName=${PRODUCT_DISPLAY_NAME}'" \
-trimpath \
-o /tmp/stackrox-mcp \
./cmd/stackrox-mcp
# Stage 2: Runtime - Minimal runtime image
FROM $MCP_SERVER_BASE_IMAGE
# Set default environment variables
ENV LOG_LEVEL=INFO
# Set working directory
WORKDIR /app
# Copy trusted certificates from builder
COPY --from=builder /etc/pki/ca-trust/extracted/ /etc/pki/ca-trust/extracted/
COPY --from=builder /etc/ssl/certs/ /etc/ssl/certs/
# Copy binary from builder
COPY --from=builder /tmp/stackrox-mcp /app/stackrox-mcp
# Set ownership for OpenShift arbitrary UID support
# Files owned by 4000, group 0 (root), with group permissions matching user
RUN chown -R 4000:0 /app && \
chmod -R g=u /app
# Switch to non-root user (can be overridden by OpenShift SCC)
USER 4000
# Expose port for MCP server
EXPOSE 8080
# Run the application
ENTRYPOINT ["/app/stackrox-mcp"]
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.