Skip to content

Commit a51990a

Browse files
authored
chore: more docker improvements (#2004)
1 parent 2df3b45 commit a51990a

18 files changed

Lines changed: 139 additions & 69 deletions

File tree

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
commit: "chore(release): version apps"
6969
title: "Release New Version"
7070
version: pnpm changeset:version
71-
publish: pnpm changeset-publish
71+
publish: pnpm changeset:publish
7272
createGithubReleases: false
7373
env:
7474
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/release_snapshot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ jobs:
8383

8484
- name: Publish snapshot packages to NPM
8585
if: steps.snapshot.outputs.hasChanges == 'true'
86-
run: pnpm changeset-publish:next
86+
run: pnpm changeset:publish:next
8787
env:
8888
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
8989
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

apps/ensapi/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"lint": "biome check --write .",
1919
"lint:ci": "biome ci",
2020
"typecheck": "tsgo --noEmit",
21-
"generate:gqlschema": "tsx src/omnigraph-api/lib/write-graphql-schema.ts"
21+
"generate:gqlschema": "tsx src/omnigraph-api/lib/write-graphql-schema.ts",
22+
"version:current": "node -p \"require('./package.json').version\""
2223
},
2324
"dependencies": {
2425
"@ensdomains/ensjs": "^4.0.2",

docker/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ All commands are run from the **monorepo root**.
66

77
| File | Purpose |
88
| ---------------------------------------- | -------------------------------------------------------------------------------------- |
9-
| `docker/docker-compose.yml` | Base stack — ensindexer, ensapi, ensrainbow, ensadmin, postgres. For mainnet/sepolia. |
9+
| `docker/docker-compose.yml` | Base stack — ensindexer, ensapi, ensrainbow, ensadmin, ensdb. For mainnet/sepolia. |
1010
| `docker/docker-compose.devnet.yml` | Full stack against local devnet (`ens-test-env`). Includes all base services + devnet. |
11-
| `docker/docker-compose.orchestrator.yml` | Minimal infra for CI — devnet + postgres only. Used by `orchestrator.ts`. |
11+
| `docker/docker-compose.orchestrator.yml` | Minimal infra for CI — devnet + ensdb only. Used by `orchestrator.ts`. |
1212
| `docker/services/*.yml` | Individual service definitions. Extended by the compose files above. |
13-
| `docker/envs/.env.docker.common` | Shared env defaults (postgres credentials, internal service URLs). Committed. |
13+
| `docker/envs/.env.docker.common` | Shared env defaults (ensdb credentials, internal service URLs). Committed. |
1414
| `docker/envs/.env.docker.devnet` | Devnet defaults (PLUGINS, etc.). Committed. Works out of the box. |
1515
| `docker/envs/.env.docker.example` | Example for user-specific config. Copy to `.env.docker.local` for mainnet/sepolia. |
1616
| `docker/envs/.env.docker.local` | User config (gitignored). Required for base stack, optional for devnet overrides. |
@@ -57,7 +57,7 @@ To override defaults (e.g. change `PLUGINS`), create `docker/envs/.env.docker.lo
5757
docker compose -f docker/docker-compose.devnet.yml up -d
5858

5959
# Start only devnet + core services (no ensadmin)
60-
docker compose -f docker/docker-compose.devnet.yml up -d devnet postgres ensrainbow ensindexer ensapi
60+
docker compose -f docker/docker-compose.devnet.yml up -d ensindexer ensapi
6161

6262
# Start only devnet (quick local EVM node, also shows data information about devnet)
6363
docker compose -f docker/docker-compose.devnet.yml up devnet
@@ -83,7 +83,7 @@ pnpm docker:build:ensadmin
8383

8484
### CI / integration tests
8585

86-
Used internally by `orchestrator.ts` via testcontainers. Starts devnet + postgres only.
86+
Used internally by `orchestrator.ts` via testcontainers. Starts devnet + ensdb only.
8787

8888
```bash
8989
pnpm test:integration:ci

docker/docker-compose.devnet.yml

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,6 @@ services:
44
file: services/ensindexer.yml
55
service: ensindexer
66
environment:
7-
# TODO: in future we will migrate devnet to chain_id=1
8-
# need to remove `RPC_URL_15658733` in that case
9-
RPC_URL_15658733: http://devnet:8545
10-
RPC_URL_1: http://devnet:8545
11-
ENSINDEXER_SCHEMA_NAME: docker_devnet_v1
12-
LABEL_SET_ID: ens-test-env
137
NAMESPACE: ens-test-env
148
env_file:
159
- path: envs/.env.docker.common
@@ -21,7 +15,7 @@ services:
2115
depends_on:
2216
ensrainbow:
2317
condition: service_healthy
24-
postgres:
18+
ensdb:
2519
condition: service_healthy
2620
devnet:
2721
condition: service_healthy
@@ -30,14 +24,8 @@ services:
3024
extends:
3125
file: services/ensapi.yml
3226
service: ensapi
33-
environment:
34-
# TODO: in future we will migrate devnet to chain_id=1
35-
# need to remove `RPC_URL_15658733` in that case
36-
RPC_URL_15658733: http://devnet:8545
37-
RPC_URL_1: http://devnet:8545
38-
ENSINDEXER_SCHEMA_NAME: docker_devnet_v1
3927
depends_on:
40-
postgres:
28+
ensdb:
4129
condition: service_healthy
4230
env_file:
4331
- path: envs/.env.docker.common
@@ -51,8 +39,6 @@ services:
5139
extends:
5240
file: services/ensrainbow.yml
5341
service: ensrainbow
54-
environment:
55-
LABEL_SET_ID: ens-test-env
5642
env_file:
5743
- path: envs/.env.docker.common
5844
required: true
@@ -76,12 +62,12 @@ services:
7662
- path: envs/.env.docker.local
7763
required: false
7864

79-
postgres:
65+
ensdb:
8066
extends:
81-
file: services/postgres.yml
82-
service: postgres
67+
file: services/ensdb.yml
68+
service: ensdb
8369
env_file:
84-
- path: ./envs/.env.docker.common
70+
- path: envs/.env.docker.common
8571
required: true
8672

8773
devnet:
@@ -94,8 +80,8 @@ volumes:
9480
# compose file that references them — they cannot be inherited via `extends`.
9581
# Explicit `name:` prevents collision with the base stack's volumes when both
9682
# are run from the same directory (same project name).
97-
postgres_data:
98-
name: ensnode_devnet_postgres_data
83+
ensdb_data:
84+
name: ensnode_devnet_ensdb_data
9985
driver: local
10086
ensrainbow_data:
10187
name: ensnode_devnet_ensrainbow_data
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
# Minimal compose for CI integration tests.
22
# Provides only the infrastructure services needed by orchestrator.ts:
3-
# devnet (local EVM) and postgres (database).
3+
# devnet (local EVM) and ensdb (database).
44
services:
55
devnet:
66
extends:
77
file: services/devnet.yml
88
service: devnet
99

10-
postgres:
10+
ensdb:
1111
extends:
12-
file: services/postgres.yml
13-
service: postgres
12+
file: services/ensdb.yml
13+
service: ensdb
1414
env_file:
15-
- path: ./envs/.env.docker.common
15+
- path: envs/.env.docker.common
1616
required: true
1717

1818
volumes:
1919
# Docker Compose requires volumes used by services to be declared in each
2020
# compose file that references them — they cannot be inherited via `extends`.
21-
postgres_data:
21+
ensdb_data:
2222
driver: local

docker/docker-compose.yml

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ services:
33
extends:
44
file: services/ensindexer.yml
55
service: ensindexer
6+
restart: unless-stopped
67
environment:
78
ENSINDEXER_SCHEMA_NAME: docker_ensindexer_v1
89
depends_on:
910
ensrainbow:
1011
condition: service_healthy
11-
postgres:
12+
ensdb:
1213
condition: service_healthy
1314
env_file:
1415
- path: envs/.env.docker.common
@@ -21,10 +22,11 @@ services:
2122
extends:
2223
file: services/ensapi.yml
2324
service: ensapi
25+
restart: unless-stopped
2426
environment:
2527
ENSINDEXER_SCHEMA_NAME: docker_ensindexer_v1
2628
depends_on:
27-
postgres:
29+
ensdb:
2830
condition: service_healthy
2931
env_file:
3032
- path: envs/.env.docker.common
@@ -36,6 +38,7 @@ services:
3638
extends:
3739
file: services/ensrainbow.yml
3840
service: ensrainbow
41+
restart: unless-stopped
3942
env_file:
4043
- path: envs/.env.docker.common
4144
required: true
@@ -46,6 +49,7 @@ services:
4649
extends:
4750
file: services/ensadmin.yml
4851
service: ensadmin
52+
restart: unless-stopped
4953
depends_on:
5054
ensapi:
5155
condition: service_started
@@ -55,18 +59,19 @@ services:
5559
- path: envs/.env.docker.local
5660
required: true
5761

58-
postgres:
62+
ensdb:
5963
extends:
60-
file: services/postgres.yml
61-
service: postgres
64+
file: services/ensdb.yml
65+
service: ensdb
66+
restart: unless-stopped
6267
env_file:
6368
- path: envs/.env.docker.common
6469
required: true
6570

6671
volumes:
6772
# Docker Compose requires volumes used by services to be declared in each
6873
# compose file that references them — they cannot be inherited via `extends`.
69-
postgres_data:
74+
ensdb_data:
7075
driver: local
7176
ensrainbow_data:
7277
driver: local

docker/envs/.env.docker.common

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
# Shared Docker Compose environment variables
22
# Used by docker/docker-compose.yml and its variants
33

4-
54
# Postgres
65
POSTGRES_DB=postgres
76
POSTGRES_USER=postgres
87
POSTGRES_PASSWORD=password
98

109
# Internal service URLs (container-to-container)
11-
ENSDB_URL=postgresql://postgres:password@postgres:5432/postgres
10+
ENSDB_URL=postgresql://postgres:password@ensdb:5432/postgres
1211
ENSRAINBOW_URL=http://ensrainbow:3223
1312

14-
# ENS Admin
13+
# ENSAdmin
1514
ENSADMIN_PUBLIC_URL=http://localhost:4173
1615
NEXT_PUBLIC_SERVER_CONNECTION_LIBRARY=http://localhost:4334

docker/envs/.env.docker.devnet

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
# Default configuration for devnet docker-compose stack.
22
# These values work out of the box — override by creating .env.docker.local.
33

4+
# ENSIndexer
45
PLUGINS=subgraph,ensv2
6+
# ENSIndexer and ENSApi
7+
ENSINDEXER_SCHEMA_NAME=docker_devnet_v1
8+
# ENSIndexer and ENSApi
9+
RPC_URL_1=http://devnet:8545
10+
# ENSIndexer and ENSRainbow
511
LABEL_SET_VERSION=0
12+
# ENSIndexer and ENSRainbow
13+
LABEL_SET_ID=ens-test-env
14+
# ENSRainbow
615
DB_SCHEMA_VERSION=3
16+
# TODO: in future we might migrate devnet to different chain_id like 1337 or 31337
17+
# need to update this `RPC_URL_15658733` in that case
18+
RPC_URL_15658733=http://devnet:8545

docker/services/ensadmin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
services:
22
ensadmin:
33
container_name: ensadmin
4-
image: ghcr.io/namehash/ensnode/ensadmin:latest
4+
image: ghcr.io/namehash/ensnode/ensadmin:${ENSNODE_VERSION:-1.10.1}
55
build:
66
dockerfile: ./apps/ensadmin/Dockerfile
77
context: ../..

0 commit comments

Comments
 (0)