Skip to content

chore: drop unused Go and Foundry from the bedrock-init image - #100

Open
feafel wants to merge 1 commit into
inkonchain:mainfrom
feafel:chore/drop-unused-go-foundry
Open

feafel wants to merge 1 commit into
inkonchain:mainfrom
feafel:chore/drop-unused-go-foundry

Conversation

@feafel

@feafel feafel commented Nov 4, 2026

Copy link
Copy Markdown

What

Removes the Go toolchain and Foundry from docker/dockerfiles/Dockerfile.bedrock-init:

-# Install Go.
-RUN curl -sSL https://golang.org/dl/go1.21.6.linux-amd64.tar.gz | tar -v -C /usr/local -xz
-RUN cp /usr/local/go/bin/go /usr/bin/go
-
-# Install Foundry.
-RUN curl -L https://foundry.paradigm.xyz | bash
-RUN /root/.foundry/bin/foundryup
-RUN rsync -a /root/.foundry/bin/ /usr/bin/

and updates the README sentence that claimed the container installs Foundry.

Why

Nothing in the image uses either toolchain:

consumer what it actually needs
scripts/init-bedrock.sh curl, tar, sha256sum, openssl, mkdir, dirname
scripts/utils.sh aria2c (aria2), unzstd (zstd), lz4, coreutils

grep across scripts/, docker/ and the repo history finds no cast, forge, anvil or go invocation — they were never referenced by any container-side script. They look cargo-culted from the upstream simple-optimism-node template this repo was forked from.

Effect: every docker compose up --build builds a smaller image (~1.2 GB less to pull/extract on first boot, which matters because the first boot is already dominated by a 250-400 GB snapshot download), and the build loses a curl | bash step that fetched a third-party installer.

progress.sh still needs cast, but it runs on the host — that is unchanged and the README now says so directly.

Verification

  • no references to the removed toolchains anywhere in the repo (git grep -nE '\b(cast|forge|anvil)\b' over tracked files → only progress.sh, which is host-side)
  • docker-compose.yml untouched; the image still installs everything init-bedrock.sh/utils.sh call
  • YAML files parse; README wording updated

Not verified: an actual docker build (no Docker in this environment) — the change only deletes two RUN blocks that nothing depends on.

The stack pins grafana/grafana:9.3.0 (December 2022). That release has been
end-of-life for years: every CVE fixed since - including the auth-bypass and
XSS fixes in 9.5/10.x - is missing from the monitoring stack every node
operator runs.

Bump the default to 12.4.14 (the current 12.x line, still receiving patches;
13.2.5 is available if you would rather jump to the newest major).

Compatibility was checked against the shipped dashboard before bumping:
- schemaVersion 37 is auto-migrated by Grafana on load
- panel types are gauge/row/stat/timeseries - all core panels, no removed
  'graph' panel
- the dashboard's datasource uid 6R74VAnVz matches the provisioned
  datasource uid
- provisioning apiVersion 1, GF_SECURITY_ADMIN_PASSWORD and the file-based
  dashboard provider are unchanged in 12.x

While in there, fix the provisioning schema: both files use org_id, which
modern Grafana ignores (it expects orgId), so the datasource and dashboard
provider silently fall back to org 1. Use the documented key.

Also drop the two InfluxDB entries from deleteDatasources - InfluxDB left the
stack in inkonchain#97, so they can never match anything.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants