dockerfile

This commit is contained in:
Tienson Qin
2026-02-25 22:52:51 +08:00
parent 3285fab011
commit ae20f160b5
3 changed files with 46 additions and 7 deletions

View File

@@ -20,7 +20,7 @@
"deploy-staging": "export SENTRY_RELEASE=$(git rev-parse HEAD) && yarn clean && yarn release && yarn sentry:sourcemaps && cd ./worker && wrangler deploy --env staging"
},
"dependencies": {
"@cloudflare/sandbox": "0.7.0",
"@cloudflare/sandbox": "0.7.5",
"@fly/sprites": "^0.0.1",
"@sentry/cloudflare": "^10.38.0",
"@sentry/node": "^10.38.0",

View File

@@ -1,9 +1,48 @@
FROM docker.io/cloudflare/sandbox:0.7.0
WORKDIR /workspace
# RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/latest/install.sh | sh
# Pre-install agents
# RUN sandbox-agent install-agent codex
ENV DEBIAN_FRONTEND=noninteractive
# System deps + Java 21
RUN apt-get update && apt-get install -y --no-install-recommends \
openjdk-21-jdk \
&& rm -rf /var/lib/apt/lists/*
# Install Node.js 22
# The base image has Node 20, we need to replace it with Node 22
# Using direct binary download for reliability
ENV NODE_VERSION=22.20.0
RUN ARCH="$(dpkg --print-architecture)" \
&& case "${ARCH}" in \
amd64) NODE_ARCH="x64" ;; \
arm64) NODE_ARCH="arm64" ;; \
*) echo "Unsupported architecture: ${ARCH}" >&2; exit 1 ;; \
esac \
&& apt-get update && apt-get install -y xz-utils ca-certificates rclone tmux vim \
&& curl -fsSLk https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.xz -o /tmp/node.tar.xz \
&& tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 \
&& rm /tmp/node.tar.xz \
&& node --version \
&& npm --version
# Prefer corepack over "npm i -g yarn"
RUN corepack enable
# Optionally pin yarn (pick a version you want)
# RUN corepack prepare yarn@4.6.0 --activate
# Clojure
RUN curl -fsSL -o /tmp/linux-install.sh \
https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh \
&& chmod +x /tmp/linux-install.sh \
&& /tmp/linux-install.sh \
&& rm -f /tmp/linux-install.sh
# Babashka (actually run installer)
RUN curl -fsSL https://raw.githubusercontent.com/babashka/babashka/master/install | bash
WORKDIR /workspace
# sandbox-agent + codex agent
RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.1.5/install.sh | sh \
&& sandbox-agent install-agent codex
# Expose port for local dev (wrangler dev requires EXPOSE directives)
EXPOSE 2468

View File

@@ -10,7 +10,7 @@ instance_type = "lite"
max_instances = 1
[containers.settings]
idle_timeout = "10m"
idle_timeout = "1h"
[version_metadata]
binding = "CF_VERSION_METADATA"