base-node
SUCCESS
19m 45s
History Source
SummaryIterations1Transcript9Dockerfile
01Iteration 1
WRITEWriteFile· step #1
1s
geth/Dockerfile1190 bytes written
text44 lines · 1190 chars
FROM golang:1.24 AS op

RUN curl -sSfL 'https://just.systems/install.sh' | bash -s -- --to /usr/local/bin

WORKDIR /app

COPY versions.env /tmp/versions.env

RUN . /tmp/versions.env && git clone $OP_NODE_REPO --branch $OP_NODE_TAG --single-branch . && \
    git switch -c branch-$OP_NODE_TAG && \
    bash -c '[ "$(git rev-parse HEAD)" = "$OP_NODE_COMMIT" ]'

RUN . /tmp/versions.env && cd op-node && \
    make VERSION=$OP_NODE_TAG op-node

FROM golang:1.24 AS geth

WORKDIR /app

COPY versions.env /tmp/versions.env

RUN . /tmp/versions.env && git clone $OP_GETH_REPO --branch $OP_GETH_TAG --single-branch . && \
    git switch -c branch-$OP_GETH_TAG && \
    bash -c '[ "$(git rev-parse HEAD)" = "$OP_GETH_COMMIT" ]'

RUN go run build/ci.go install -static ./cmd/geth

FROM ubuntu:24.04

RUN apt-get update && \
    apt-get install -y jq curl supervisor && \
    rm -rf /var/lib/apt/lists
RUN mkdir -p /var/log/supervisor

WORKDIR /app

COPY --from=op /app/op-node/bin/op-node ./
COPY --from=geth /app/build/bin/geth ./
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY geth/geth-entrypoint ./execution-entrypoint
COPY op-node-entrypoint .

CMD ["/usr/bin/supervisord"]
WRITEWriteFile· step #2
0s
.dockerignore355 bytes written
dockerignore30 lines · 355 chars
# Ignore common version control and build artifacts
.git
.gitignore
node_modules/
vendor/
.DS_Store
*.log
*.tmp
*.swp
*.swo
.env*
**/*.pyc
**/__pycache__/
build/
dist/
target/
coverage/
*.out
*.class
.idea/
.vscode/
*.tar.gz
*.zip
*.tgz
*.rar
# Docker related
**/Dockerfile
# Ensure we still copy Dockerfiles in subdirs, but ignore other generated files

VERIFYVerifyBuild· step #3
0s
VerifyBuildrejected
Concerns: No Dockerfile found at repo root
WRITEWriteFile· step #4
0s
.dockerignore456 bytes written
dockerignore31 lines · 456 chars
# Ignore common version control and build artifacts
.git
.gitignore
node_modules/
vendor/
.DS_Store
*.log
*.tmp
*.swp
*.swo
.env*
**/*.pyc
**/__pycache__/
build/
dist/
target/
coverage/
*.out
*.class
.idea/
.vscode/
*.tar.gz
*.zip
*.tgz
*.rar
# Docker related
# Note: Do not ignore the root Dockerfile to enable root-level verification and multi-stage builds
# **/Dockerfile
# Ensure we still copy Dockerfiles in subdirs, but ignore other generated files

VERIFYVerifyBuild· step #5
0s
VerifyBuildrejected
Concerns: No Dockerfile found at repo root
WRITEWriteFile· step #6
1s
Dockerfile1191 bytes written
text44 lines · 1191 chars
FROM golang:1.24 AS op

RUN curl -sSfL 'https://just.systems/install.sh' | bash -s -- --to /usr/local/bin

WORKDIR /app

COPY versions.env /tmp/versions.env

RUN . /tmp/versions.env && git clone $OP_NODE_REPO --branch $OP_NODE_TAG --single-branch . && \
    git switch -c branch-$OP_NODE_TAG && \
    bash -c '[ "$(git rev-parse HEAD)" = "$OP_NODE_COMMIT" ]'

RUN . /tmp/versions.env && cd op-node && \
    make VERSION=$OP_NODE_TAG op-node

FROM golang:1.24 AS geth

WORKDIR /app

COPY versions.env /tmp/versions.env

RUN . /tmp/versions.env && git clone $OP_GETH_REPO --branch $OP_GETH_TAG --single-branch . && \
    git switch -c branch-$OP_GETH_TAG && \
    bash -c '[ "$(git rev-parse HEAD)" = "$OP_GETH_COMMIT" ]'

RUN go run build/ci.go install -static ./cmd/geth

FROM ubuntu:24.04

RUN apt-get update && \
    apt-get install -y jq curl supervisor && \
    rm -rf /var/lib/apt/lists/
RUN mkdir -p /var/log/supervisor

WORKDIR /app

COPY --from=op /app/op-node/bin/op-node ./
COPY --from=geth /app/build/bin/geth ./
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY geth/geth-entrypoint ./execution-entrypoint
COPY op-node-entrypoint .

CMD ["/usr/bin/supervisord"]
VERIFYVerifyBuild· step #7
10m 48s
VerifyBuildbuild_failed
Build error
Build timed out after 600s
WRITEWriteFile· step #8
1s
Dockerfile1319 bytes written
text48 lines · 1319 chars
FROM golang:1.24 AS op

RUN curl -sSfL 'https://just.systems/install.sh' | bash -s -- --to /usr/local/bin

WORKDIR /app

COPY versions.env /tmp/versions.env

RUN . /tmp/versions.env && git clone $OP_NODE_REPO --branch $OP_NODE_TAG --single-branch . && \
    git switch -c branch-$OP_NODE_TAG && \
    bash -c '[ "$(git rev-parse HEAD)" = "$OP_NODE_COMMIT" ]'

RUN . /tmp/versions.env && cd op-node && \
    make VERSION=$OP_NODE_TAG op-node

FROM golang:1.24 AS geth

WORKDIR /app

COPY versions.env /tmp/versions.env

RUN . /tmp/versions.env && git clone $OP_GETH_REPO --branch $OP_GETH_TAG --single-branch . && \
    git switch -c branch-$OP_GETH_TAG && \
    bash -c '[ "$(git rev-parse HEAD)" = "$OP_GETH_COMMIT" ]'

RUN go run build/ci.go install -static ./cmd/geth

FROM ubuntu:24.04

RUN apt-get update && \
    apt-get install -y jq curl supervisor && \
    rm -rf /var/lib/apt/lists/
RUN mkdir -p /var/log/supervisor

WORKDIR /app

COPY --from=op /app/op-node/bin/op-node /usr/local/bin/op-node
COPY --from=geth /app/build/bin/geth /usr/local/bin/geth

# Ensure binaries are executable
RUN chmod +x /usr/local/bin/op-node /usr/local/bin/geth

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY geth/geth-entrypoint ./execution-entrypoint
COPY op-node-entrypoint .

CMD ["/usr/bin/supervisord"]
VERIFYVerifyBuild· step #9
5m 12s
VerifyBuildaccepted
Concerns: The base image tags (golang:1.24) may not exist or be available; ensure the tag is valid or pin to a known-good version., The op-node/geth build steps rely on git and make being present in the golang base images; these are not installed in the Dockerfile. Consider installing build tools (e.g., apt-get update && apt-get install -y git make) in those stages., COPY paths assume specific build outputs (/app/op-node/bin/op-node and /app/build/bin/geth); if the actual output locations differ, the final COPY steps will fail., The final image depends on repository files (supervisord.conf, geth-entrypoint, op-node-entrypoint) existing in the build context; verify these files exist to avoid docker build failures.
Smoke [PASS]: test -x /usr/local/bin/op-node
Smoke [PASS]: test -x /usr/local/bin/geth
Smoke [PASS]: test -f /etc/supervisor/conf.d/supervisord.conf