Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
CodeIssuesDiscussionsWikiPull RequestsProjectsCommitsActionsReleasesContributorsPulse● GatesSecuritySettingsDeploymentsPipelineInsightsAgents✨ Explain✨ Ask AI✨ Workspace✨ Spec✨ Tests▓ Debt Map✨ NL Search🏛 Archaeology
Blame · Line-by-line history

Dockerfile

Each line is annotated with the commit that last touched it. Click any SHA to jump to that commit and see the surrounding change.

DockerfileBlame50 lines · 4 contributors
8ade77bClaude1FROM oven/bun:1.3 AS base
2WORKDIR /app
3
6499f34Claude4# Install git (required for ALL git operations — clone, push, branch/tree
56ea9a9Claude5# listing, diffs), zip (used to package the Claude Desktop .dxt bundle at
6# build time), and wget (the compose healthcheck calls it — without it the
7# container is permanently "unhealthy" and autoheal restart-loops it).
8# Verify git landed: a missing binary here must fail the build loudly rather
9# than ship an image that 500s on every repo page.
6499f34Claude10RUN apt-get update \
56ea9a9Claude11 && apt-get install -y --no-install-recommends git ca-certificates zip wget \
6499f34Claude12 && rm -rf /var/lib/apt/lists/* \
56ea9a9Claude13 && git --version \
14 && wget --version | head -1
8ade77bClaude15
16# Install dependencies
17COPY package.json bun.lock ./
18RUN bun install --frozen-lockfile --production
19
20# Copy source
21COPY src/ ./src/
50c42feanthropic-code-agent[bot]22COPY drizzle/ ./drizzle/
dcefebeTest User23COPY scripts/ ./scripts/
9e3aad5Claude24COPY extension/ ./extension/
25COPY public/ ./public/
8ade77bClaude26COPY tsconfig.json drizzle.config.ts ./
27COPY legal/ ./legal/
28COPY CLAUDE.md LICENSE ./
29
9e3aad5Claude30# Refresh the Claude Desktop (.dxt) bundle from source into public/ so GET
31# /gluecron.dxt serves a real file instead of 404ing (which also kept tripping
32# the synthetic uptime monitor). The committed public/gluecron.dxt is the
33# fallback; this rebuild keeps it in sync with the manifest. Best-effort — a
34# glitch here must not fail the whole image.
35RUN bash scripts/build-dxt.sh || echo "WARN: .dxt bundle build skipped"
36
8ade77bClaude37# Create repos directory
38RUN mkdir -p /data/repos
39
40ENV GIT_REPOS_PATH=/data/repos
41ENV NODE_ENV=production
42ENV PORT=3000
43
44EXPOSE 3000
45
2c3ba6ecopilot-swe-agent[bot]46# Run as non-root user for security
47RUN chown -R bun:bun /app /data/repos
48USER bun
49
8ade77bClaude50CMD ["bun", "run", "src/index.ts"]