IA1.2.4 Generate dockers for the l1, dev node, OP Geth, and OP node services#182
Conversation
| @@ -0,0 +1,112 @@ | |||
| # OP Stack Dockerfile, simplified from ops/docker/op-stack-go/Dockerfile | |||
There was a problem hiding this comment.
@Ancient123 Following the pattern in op-stack-go/Dockerfile, I used this file for the OP node, batcher, and proposer, instead of creating one Dockerfile for one service--is this okay?
|
Will the other services (Espresso node, Caff node) be implemented in another PR? |
| mv "$GETH_DIR/geth" /usr/local/bin/geth && \ | ||
| rm -rf geth.tar.gz "$GETH_DIR" && \ | ||
| chmod +x /usr/local/bin/geth | ||
|
|
There was a problem hiding this comment.
We should check the hash GETH_SHA here.
There was a problem hiding this comment.
Oh, we do! It's located around 10+ lines above, the command starting from GETH_SHA=.
There was a problem hiding this comment.
Right, but this variable GETH_SHA does not seem to be used anywhere? Should not we compute the hash of the tar.gz file against GETH_SHA or something similar?
|
|
||
| # Rust builder for Espresso crypto libraries | ||
| FROM --platform=$BUILDPLATFORM rust:1.84.1-alpine3.20 AS rust-builder | ||
| ARG ESPRESSO_NETWORK_GO_VER=0.0.34 |
There was a problem hiding this comment.
Add a TODO to check the hash of the espresso go library when we switch to the new one. cc @dailinsubjam
There was a problem hiding this comment.
TODO added: ce1dc2c. Also added an Asana task.
espresso/docker-compose.yml
Outdated
| context: ./dockerfiles/l1-geth | ||
| image: l1-geth:espresso | ||
| volumes: | ||
| - ../config/l1-genesis-devnet.json:/l1-genesis-devnet.json:ro |
There was a problem hiding this comment.
Pasting @Ancient123's comment from Slack:
when doing mounts at runtime don't mount individual files. If the file gets rewritten on the host machine, it won't take affect on the docker, because it can hold onto an older handle for the previous file.
Is this expected? |
@philippecamacho The Espresso dev node uses the Espresso pre-built image, so it doesn't need a Dockerfile. The Caff node uses the same target as the OP node does, so we don't need to specify a Dockerfile for it separately. |
@philippecamacho Not expected! I'll investigate this. |
Made a separate task for this issue because it also occurred on the default branch: https://app.asana.com/1/1208976916964769/project/1209392461754458/task/1210618856384949?focus=true. Will fix it in a separate PR. |
jparr721
left a comment
There was a problem hiding this comment.
Volumes will all need to be deployed in EFS, heads up that that's decidedly nontrivial. We can talk about that.
espresso/docker-compose.yml
Outdated
| - op-geth-data:/data | ||
| entrypoint: "" | ||
| command: > | ||
| sh -c " |
There was a problem hiding this comment.
This might be really annoying in terraform. I'd recommend checking how arbitrary scripts work in there. Ideally we'd just make this part of the container instead, so we can fork their container and then add this as a setup step (I think).
There was a problem hiding this comment.
In the terraform I created in the tee-op-deploy repo, I added commands like this to the container definition. Can we keep them here till the terraform PR (not sent yet) is merged?
Update: I moved these commands to l1-geth-init.sh and op-geth-init.sh scripts.
Thanks @jparr721. As discussed on this Slack thread, we are not going to use EFS for the devnet. |
|
Services in the PR title are working now. Will have another PR for the remaining services that depend on the contract deployment. |
dailinsubjam
left a comment
There was a problem hiding this comment.
LGTM. L1 Geth, the Espresso dev node, the OP Geth, the OP node sequencer, and the OP node verifier work for me.
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
…ervices (#182) * Fix services except the nonce * Simpify manual work * Save fixes WIP * Revert dockerfile change * Save parameter fixes * Add fixes * All services running again. * Fix timestamp and increase dev period * Install pnpm with nix. * More cleanups * Revert go.mod, fix install syntax, add const env, add more comments * Add env file * Fix after merge * Add changes for l1 terraform * Update for op-geth * Fix op node related docker * Add SHA check * Add a TODO * Add jwt back * Create GH actions workflow * Fix tag * Fix path and tag * Add init scripts * Fix paths and settings after adding init scripts * Fix path for CI workflow * Move files * Reorder commands * Fix path * More path update --------- Co-authored-by: Philippe Camacho <philippe@espressosys.com>
Closes https://app.asana.com/1/1208976916964769/project/1209392461754458/task/1210546932882749?focus=true.
This PR:
op-geth-initservice to avoid manual initialization with the genesis file.This PR does not:
How to test this PR:
docker compose up --build -dto build.docker compose logs -fto run all services and check that the L1 Geth, the Espresso dev node, the OP Geth, the OP node sequencer, and the OP node verifier work.Docker Composesection inREADME_ESPRESSO.md.