Skip to content

Commit

Permalink
feat: build zkevm contract pp images (#295)
Browse files Browse the repository at this point in the history
* docs: clean up

* docs: update docker README and add PP-RC1 and PP-RC2 images

* docs: new pp images support fork 12
  • Loading branch information
leovct authored Oct 3, 2024
1 parent 6d05888 commit 76b332e
Showing 1 changed file with 53 additions and 43 deletions.
96 changes: 53 additions & 43 deletions docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,44 @@

We maintain a suite of custom Docker images tailored specifically for deploying the CDK stack. These images serve various purposes, including hosting distinct zkEVM contracts (each fork tagged separately), adapting the bridge UI to support relative URLs, and applying specific workloads.

## Docker Images

### ZkEVM Contracts

> 🚨 From now on, the [leovct/zkevm-contracts](https://hub.docker.com/repository/docker/leovct/zkevm-contracts/general) image tags will follow the same tags as [0xPolygonHermez/zkevm-contracts](https://github.com/0xPolygonHermez/zkevm-contracts).
| Fork ID | zkEVM Contracts Tag / Commit | Image |
| ------- | ---------------------------- | ----- |
| 12-PP-RC2 | [v9.0.0-rc.2-pp](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v9.0.0-rc.2-pp) | [leovct/zkevm-contracts:v9.0.0-rc.2-pp](https://hub.docker.com/layers/leovct/zkevm-contracts/v9.0.0-rc.2-pp/images/sha256-9cf68f7583029aa0b46463fe39c06310427c7afe55ba3301e2d57133ffbbf5f9?context=repo) |
| 12-PP-RC1 | [v9.0.0-rc.1-pp](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v9.0.0-rc.1-pp) | [leovct/zkevm-contracts:v9.0.0-rc.1-pp](https://hub.docker.com/layers/leovct/zkevm-contracts/v9.0.0-rc.1-pp/images/sha256-73fe48df04cb3cb631c2f5cd852c878b668ca49a477fe98278f2e0128d45b976?context=repo) |
| 12-RC4 | [v8.0.0-rc.4-fork.12](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v8.0.0-rc.4-fork.12) | [leovct/zkevm-contracts:v8.0.0-rc.4-fork.12](https://hub.docker.com/layers/leovct/zkevm-contracts/v8.0.0-rc.4-fork.12/images/sha256-544b2db63c608b851aa1fd9c4d4e28c63f4253e295a487c4140a6392799f336e?context=repo) |
| 12-RC3 | [v8.0.0-rc.3-fork.12](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v8.0.0-rc.3-fork.12) | [leovct/zkevm-contracts:v8.0.0-rc.3-fork.12](https://hub.docker.com/layers/leovct/zkevm-contracts/v8.0.0-rc.3-fork.12/images/sha256-f3e9a34651403f246572823249b5f698b4e5d311478f87a84cbfa11c2d091705?context=repo) |
| 12-RC2 | [v8.0.0-rc.2-fork.12](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v8.0.0-rc.2-fork.12) | [leovct/zkevm-contracts:v8.0.0-rc.2-fork.12](https://hub.docker.com/layers/leovct/zkevm-contracts/v8.0.0-rc.2-fork.12/images/sha256-5d835411ff43efb1008eeede0d25db79f6cb563e86d76b33274bcaebc8f9f7d0?context=repo) |
| 12-RC1 | [v8.0.0-rc.1-fork.12](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v8.0.0-rc.1-fork.12) | [leovct/zkevm-contracts:v8.0.0-rc.1-fork.12](https://hub.docker.com/layers/leovct/zkevm-contracts/v8.0.0-rc.1-fork.12/images/sha256-2197c0b502b93e77bee36a4b87e318a49c6b97bb74b0aca8a13767ef0e684607?context=repo) |
| 11-RC2 | [v7.0.0-rc.2-fork.10](https://github.com/0xPolygonHermez/zkevm-contracts/commits/v7.0.0-rc.2-fork.10) | [leovct/zkevm-contracts:v7.0.0-rc.2-fork.11](https://hub.docker.com/layers/leovct/zkevm-contracts/v7.0.0-rc.2-fork.11/images/sha256-8e7322525e4c0b6fd5141987d786bfd3f7fec3b0c1724843d99751df5f26f46e?context=explore) |
| 11-RC1 | [v7.0.0-rc.1-fork.10](https://github.com/0xPolygonHermez/zkevm-contracts/commits/v7.0.0-rc.1-fork.10) | [leovct/zkevm-contracts:v7.0.0-rc.1-fork.11](https://hub.docker.com/layers/leovct/zkevm-contracts/v7.0.0-rc.1-fork.11/images/sha256-c29a7bf6c6e03419e3846257d66e4606c2e3b23852b94af409853e67e75b2f36?context=explore) |
| 9-RC1 | [v6.0.0-rc.1-fork.9](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v6.0.0-rc.1-fork.9) | [leovct/zkevm-contracts:v6.0.0-rc.1-fork.9](https://hub.docker.com/layers/leovct/zkevm-contracts/v6.0.0-rc.1-fork.9/images/sha256-6a2e2dde8b15506d18285a203026d1c4f9c64d671e223ff08affacc93fd565fa?context=explore) |

The following images are deprecated:

| Fork ID | zkEVM Contracts Tag / Commit | Deprecated Images |
| ------- | ------------------------------------------ | ----------------- |
| fork4 | [v1.1.0-fork.4](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v1.1.0-fork.4) | [leovct/zkevm-contracts:fork4](https://hub.docker.com/layers/leovct/zkevm-contracts/fork4/images/sha256-6eb71326538935778d849c404b65bb1e4d3444182b980da68dcd851d01b0973a?context=repo) |
| fork5 | [v2.0.0-fork.5](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v2.0.0-fork.5) | [leovct/zkevm-contracts:fork5](https://hub.docker.com/layers/leovct/zkevm-contracts/fork5/images/sha256-ee77691afe64473bd475b861b3f2b463c4ccf1eee6f164134624e288a14c7a88?context=repo) |
| fork6 | [v3.0.0-fork.6](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v3.0.0-fork.6) | [leovct/zkevm-contracts:fork6](https://hub.docker.com/layers/leovct/zkevm-contracts/fork6/images/sha256-67555b3c936afca1969908cc3809292de5db2407b17bf8ae7d2bee80a6edd600?context=repo) |
| fork7 | [v4.0.0-fork.7](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v4.0.0-fork.7) | [leovct/zkevm-contracts:fork7](https://hub.docker.com/layers/leovct/zkevm-contracts/fork7/images/sha256-80caad2bc1daddbda16874eaa81a0c7f098b6256a385d2d2d7711ebb0a6b5634?context=repo) |
| fork8 | [v5.0.1-rc.2-fork.8](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v5.0.1-rc.2-fork.8) | [leovct/zkevm-contracts:fork8](https://hub.docker.com/layers/leovct/zkevm-contracts/fork8/images/sha256-2c148382800b6ae205811f4e5445b1f412d00738288d32c0c72ba6dd52292aec?context=repo) |
| fork9 | [v6.0.0-rc.1-fork.9](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v6.0.0-rc.1-fork.9) | [leovct/zkevm-contracts:fork9](https://hub.docker.com/layers/leovct/zkevm-contracts/fork9/images/sha256-4061ef77d36053f3471703bdf57e86f9dbef971730eda2dfb9a1627c1f29e9d9?context=repo) |
| fork10 | [v7.0.0-rc.1-fork.10](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v7.0.0-rc.1-fork.10) | [leovct/zkevm-contracts:fork10](https://hub.docker.com/layers/leovct/zkevm-contracts/fork10/images/sha256-d4e52a843cef12f8f2ab1ff2adad1ab6356782228ed9247aac54663ad2a8b21b?context=repo) |
| fork11 | [a5eacc6](https://github.com/0xPolygonHermez/zkevm-contracts/commit/a5eacc6e51d7456c12efcabdfc1c37457f2219b2) | [leovct/zkevm-contracts:fork11](https://hub.docker.com/layers/leovct/zkevm-contracts/fork11/images/sha256-74d2d996cc9a89aac094b3a77d0ab5b78581ac866f703e7e3b771aa730929fa0?context=repo) |
| fork12 | [v8.0.0-rc.1-fork.12](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v8.0.0-rc.1-fork.12) | [leovct/zkevm-contracts:fork12](https://hub.docker.com/layers/leovct/zkevm-contracts/fork12/images/sha256-8c6028410e6089e99d4696a59032d553bf8a8d9e228dca9a07289c0f6df0674b?context=repo) |

### ZkEVM Bridge UI

| zkEVM Bridge UI Tag / Commit | Image |
| ---------------------------- | ----- |
| [develop@0006445](https://github.com/0xPolygonHermez/zkevm-bridge-ui/commit/0006445e1cace5c4d737523fca44af7f7261e041) | [leovct/zkevm-bridge-ui:multi-network](https://hub.docker.com/layers/leovct/zkevm-bridge-ui/multi-network/images/sha256-14b10a03862ce62d68d6e82a18416fb3f6d9ec5a24f96caf36ca0eb6d8a1b68e?context=repo) |

## Custom Docker Images

If you ever need to build these images locally, here's a brief guide.
Expand Down Expand Up @@ -41,62 +79,37 @@ pushd /tmp/kurtosis-cdk/docker

This image contains all the npm dependencies and zkevm contracts compiled for a specific fork id.

<details>
<summary>Click to expand</summary>

Build the `zkevm-contracts` image.

```bash
version="v8.0.0-rc.4-fork.12"
version="v9.0.0-rc.2-pp"
docker build . \
--tag local/zkevm-contracts:$version \
--build-arg ZKEVM_CONTRACTS_BRANCH=$version \
--build-arg POLYCLI_VERSION=main \
--file zkevm-contracts.Dockerfile
```

Check the size of the image.

```bash
$ docker images --filter "reference=local/zkevm-contracts"
REPOSITORY TAG IMAGE ID CREATED SIZE
leovct/zkevm-contracts v8.0.0-rc.4-fork.12 ba0a5d31a69d About a minute ago 2.53GB
REPOSITORY TAG IMAGE ID CREATED SIZE
local/zkevm-contracts v9.0.0-rc.2-pp bdf8225cfa77 7 minutes ago 2.54GB
```

From now on, the [leovct/zkevm-contracts](https://hub.docker.com/repository/docker/leovct/zkevm-contracts/general) image tags will follow the same tags as [0xPolygonHermez/zkevm-contracts](https://github.com/0xPolygonHermez/zkevm-contracts).
(Optional) Push image to the Docker Hub.

| Fork ID | zkEVM Contracts Tag / Commit | Image |
| ------- | ---------------------------- | ----- |
| 9-RC1 | [v6.0.0-rc.1-fork.9](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v6.0.0-rc.1-fork.9) | [leovct/zkevm-contracts:v6.0.0-rc.1-fork.9](https://hub.docker.com/layers/leovct/zkevm-contracts/v6.0.0-rc.1-fork.9/images/sha256-6a2e2dde8b15506d18285a203026d1c4f9c64d671e223ff08affacc93fd565fa?context=explore) |
| 11-a5eacc6e | [a5eacc6e](https://github.com/0xPolygonHermez/zkevm-contracts/tree/a5eacc6e51d7456c12efcabdfc1c37457f2219b2) | [leovct/zkevm-contracts:a5eacc6e-fork.11](https://hub.docker.com/layers/leovct/zkevm-contracts/a5eacc6e-fork.11/images/sha256-42d9cb9d2349f245096f15c918001f5e5314623842b02e3af229f8995185ef68?context=repo) |
| 11-RC1 | [v7.0.0-rc.1-fork.10](https://github.com/0xPolygonHermez/zkevm-contracts/commits/v7.0.0-rc.1-fork.10) | [leovct/zkevm-contracts:v7.0.0-rc.1-fork.11](https://hub.docker.com/layers/leovct/zkevm-contracts/v7.0.0-rc.1-fork.11/images/sha256-c29a7bf6c6e03419e3846257d66e4606c2e3b23852b94af409853e67e75b2f36?context=explore) |
| 11-RC2 | [v7.0.0-rc.2-fork.10](https://github.com/0xPolygonHermez/zkevm-contracts/commits/v7.0.0-rc.2-fork.10) | [leovct/zkevm-contracts:v7.0.0-rc.2-fork.11](https://hub.docker.com/layers/leovct/zkevm-contracts/v7.0.0-rc.2-fork.11/images/sha256-8e7322525e4c0b6fd5141987d786bfd3f7fec3b0c1724843d99751df5f26f46e?context=explore) |
| 12-RC1 | [v8.0.0-rc.1-fork.12](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v8.0.0-rc.1-fork.12) | [leovct/zkevm-contracts:v8.0.0-rc.1-fork.12](https://hub.docker.com/layers/leovct/zkevm-contracts/v8.0.0-rc.1-fork.12/images/sha256-2197c0b502b93e77bee36a4b87e318a49c6b97bb74b0aca8a13767ef0e684607?context=repo) |
| 12-RC2 | [v8.0.0-rc.2-fork.12](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v8.0.0-rc.2-fork.12) | [leovct/zkevm-contracts:v8.0.0-rc.2-fork.12](https://hub.docker.com/layers/leovct/zkevm-contracts/v8.0.0-rc.2-fork.12/images/sha256-5d835411ff43efb1008eeede0d25db79f6cb563e86d76b33274bcaebc8f9f7d0?context=repo) |
| 12-RC3 | [v8.0.0-rc.3-fork.12](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v8.0.0-rc.3-fork.12) | [leovct/zkevm-contracts:v8.0.0-rc.3-fork.12](https://hub.docker.com/layers/leovct/zkevm-contracts/v8.0.0-rc.3-fork.12/images/sha256-f3e9a34651403f246572823249b5f698b4e5d311478f87a84cbfa11c2d091705?context=repo) |
| 12-RC4 | [v8.0.0-rc.4-fork.12](https://github.com/0xPolygonHermez/zkevm-contracts/releases/tag/v8.0.0-rc.4-fork.12) | [leovct/zkevm-contracts:v8.0.0-rc.4-fork.12](https://hub.docker.com/layers/leovct/zkevm-contracts/v8.0.0-rc.4-fork.12/images/sha256-544b2db63c608b851aa1fd9c4d4e28c63f4253e295a487c4140a6392799f336e?context=repo) |

The following tags are now deprecated:

| Fork ID | Branch |
| ------- | ------------------------------------------ |
| fork4 | `v1.1.0-fork.4` |
| fork5 | `v2.0.0-fork.5` |
| fork6 | `v3.0.0-fork.6` |
| fork7 | `v4.0.0-fork.7` |
| fork8 | `v5.0.1-rc.2-fork.8` |
| fork9 | `v6.0.0-rc.1-fork.9` |
| fork10 | `v7.0.0-rc.1-fork.10` |
| fork11 | `a5eacc6e51d7456c12efcabdfc1c37457f2219b2` |
| fork12 | `v8.0.0-rc.1-fork.12` |

</details>
```bash
docker login
docker tag local/zkevm-contracts:$version leovct/zkevm-contracts:$version
docker push leovct/zkevm-contracts:$version
```

### ZkEVM Bridge UI

This image contains an enhanced version of the zkEVM bridge UI with relative URL support enabled.

<details>
<summary>Click to expand</summary>

Build the `zkevm-bridge-ui` image.

```bash
Expand All @@ -106,21 +119,18 @@ docker build zkevm-bridge-ui \
--file zkevm-bridge-ui/zkevm-bridge-ui.Dockerfile
```

Check the size of the image.

```bash
$ docker images --filter "reference=local/zkevm-bridge-ui"
REPOSITORY TAG IMAGE ID CREATED SIZE
local/zkevm-bridge-ui local 040905e1cabe 28 seconds ago 377MB
```

</details>

### Toolbox

This image contains different tools to interact with blockchains such as `polycli` or `cast`.

<details>
<summary>Click to expand</summary>

Build the `toolbox` image.

```bash
Expand All @@ -130,10 +140,10 @@ docker build . \
--file toolbox.Dockerfile
```

Check the size of the image.

```bash
$ docker images --filter "reference=local/toolbox"
REPOSITORY TAG IMAGE ID CREATED SIZE
local/toolbox local 3f85f026aaf9 2 seconds ago 490MB
```

</details>

0 comments on commit 76b332e

Please sign in to comment.