From 9e45816aeceab2d2c3e33fabc58cb24004d1e7e0 Mon Sep 17 00:00:00 2001 From: sanny-io Date: Wed, 17 Sep 2025 09:33:52 +0000 Subject: [PATCH 1/3] Add dev container files. --- .devcontainer/.env | 11 +++++++++ .devcontainer/devcontainer.json | 20 +++++++++++++++++ .devcontainer/docker-compose.yml | 38 ++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 .devcontainer/.env create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml diff --git a/.devcontainer/.env b/.devcontainer/.env new file mode 100644 index 000000000..d1016e040 --- /dev/null +++ b/.devcontainer/.env @@ -0,0 +1,11 @@ +POSTGRES_USER=postgres +POSTGRES_PASSWORD=abc123 +POSTGRES_DB=postgres +POSTGRES_HOST=postgres +POSTGRES_PORT=5432 + +ZENSTACK_TEST_DB_USER=postgres +ZENSTACK_TEST_DB_PASS=abc123 +ZENSTACK_TEST_DB_NAME=postgres +ZENSTACK_TEST_DB_HOST=postgres +ZENSTACK_TEST_DB_PORT=5432 \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..7ef289460 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,20 @@ +{ + "name": "zenstack", + "dockerComposeFile": [ + "./docker-compose.yml" + ], + "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind", + "workspaceFolder": "/workspace", + "service": "workspace", + "shutdownAction": "stopCompose", + "postCreateCommand": "npm i -g pnpm@9.15.9 && pnpm install && pnpm build && pnpm test-scaffold", + "remoteUser": "node", + "customizations": { + "vscode": { + "extensions": [ + "langium.langium-vscode", + "firsttris.vscode-jest-runner" + ] + } + } +} \ No newline at end of file diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 000000000..3fe941901 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,38 @@ +name: zenstack + +volumes: + postgres-data: + + +networks: + workspace: + external: false + +services: + workspace: + container_name: zenstack-workspace + image: mcr.microsoft.com/devcontainers/javascript-node:20 + restart: always + volumes: + - ..:/workspace:cached + env_file: ./.env + command: sleep infinity + networks: + - workspace + + postgres: + container_name: zenstack-postgres + image: postgres + restart: always + volumes: + - postgres-data:/var/lib/postgresql/data/ + env_file: ./.env + networks: + - workspace + ports: + - 5432:5432 + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}" ] + interval: 5s + timeout: 5s + retries: 5 From ee5ca7c142e0a3a123b27a9bc47fec683231381f Mon Sep 17 00:00:00 2001 From: sanny-io Date: Wed, 17 Sep 2025 09:34:15 +0000 Subject: [PATCH 2/3] Add .pnpm-store to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 307f58a86..2cebbae56 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ dist coverage .build .test +.pnpm-store \ No newline at end of file From eba1522d8a09c33542ce5d9bc7d8ad9e5c3b2e36 Mon Sep 17 00:00:00 2001 From: = <=> Date: Thu, 2 Oct 2025 23:13:04 +0000 Subject: [PATCH 3/3] Fix volume for Postgres 18 --- .devcontainer/docker-compose.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 3fe941901..f8dff6f9c 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -3,7 +3,6 @@ name: zenstack volumes: postgres-data: - networks: workspace: external: false @@ -25,14 +24,14 @@ services: image: postgres restart: always volumes: - - postgres-data:/var/lib/postgresql/data/ + - postgres-data:/var/lib/postgresql/ env_file: ./.env networks: - workspace ports: - 5432:5432 healthcheck: - test: [ "CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}" ] + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 5