From c5421dd12cfd8bb96e2f49a1467bdf67a1da7d06 Mon Sep 17 00:00:00 2001 From: Naoyuki Sogo Date: Thu, 2 Jul 2026 14:45:47 +0900 Subject: [PATCH 1/2] Add Docker-based dev workflow Adds a `dev` Dockerfile stage and compose.dev.yml so the WHEEL server can be built, run, restarted, and have its client rebuilt inside Docker without a full image rebuild for routine source edits. Co-Authored-By: Claude Sonnet 5 (cherry picked from commit 54121fc6dddc4ba5fff78ef633bd47fba01a6fc1) --- Dockerfile | 12 ++++++++++++ compose.dev.yml | 27 +++++++++++++++++++++++++++ package.json | 11 ++++++++++- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 compose.dev.yml diff --git a/Dockerfile b/Dockerfile index bf8b4f867..3518e8470 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,6 +24,18 @@ COPY client client WORKDIR /usr/src/client RUN npm run build +# dev image: full source (server incl. test, client) + prebuilt client, for compose.dev.yml +FROM run_base AS dev +WORKDIR /usr/src +COPY common common +COPY client client +COPY server server +WORKDIR /usr/src/client +RUN npm run build +COPY entrypoint.sh /usr/src/server/ +WORKDIR /usr/src/server +ENTRYPOINT ["./entrypoint.sh"] + # run UT FROM run_base AS ut WORKDIR /usr/src/ diff --git a/compose.dev.yml b/compose.dev.yml new file mode 100644 index 000000000..32bfc00de --- /dev/null +++ b/compose.dev.yml @@ -0,0 +1,27 @@ +services: + wheel_dev: + build: + context: . + dockerfile: Dockerfile + target: dev + image: wheel_dev + container_name: wheel_dev + ports: + - "8089:8089" + environment: + + WHEEL_USE_HTTP: 1 + WHEEL_PORT: 8089 + WHEEL_LOG_LEVEL: debug + SSH_CONTROL_PERSIST_DIR: /tmp + volumes: + - ${HOME}:/root + - ./common:/usr/src/common + - ./server/app:/usr/src/server/app + - wheel_dev_public:/usr/src/server/app/public + - ./server/bin:/usr/src/server/bin + - ./client/src:/usr/src/client/src + - ./client/vite.config.ts:/usr/src/client/vite.config.ts + +volumes: + wheel_dev_public: diff --git a/package.json b/package.json index 4624646f3..82161f82a 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,16 @@ "licenseReport-test": "license-report --package=test/package.json --output=csv --csvHeaders --config license-report-config.json", "licenseReport-client": "license-report --package=client/package.json --output=csv --csvHeaders --config license-report-config.json", "prepare": "husky install", - "md-to-pdf": "npx md-to-pdf --stylesheet https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/2.10.0/github-markdown.min.css --body-class markdown-body" + "md-to-pdf": "npx md-to-pdf --stylesheet https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/2.10.0/github-markdown.min.css --body-class markdown-body", + "docker:dev:build": "docker compose -f compose.dev.yml build", + "docker:dev:up": "docker compose -f compose.dev.yml up -d", + "docker:dev": "run-s docker:dev:build docker:dev:up", + "docker:dev:down": "docker compose -f compose.dev.yml down", + "docker:dev:down-clean": "docker compose -f compose.dev.yml down -v", + "docker:dev:restart-server": "docker compose -f compose.dev.yml restart wheel_dev", + "docker:dev:rebuild-server": "run-s docker:dev:build docker:dev:up", + "docker:dev:rebuild-client": "docker compose -f compose.dev.yml exec wheel_dev sh -c \"cd /usr/src/client && npm run build\"", + "docker:dev:logs": "docker compose -f compose.dev.yml logs -f wheel_dev" }, "devDependencies": { "@eslint/js": "^8.57.1", From 5b8a49e355aa3ddbd96bbb3c87f37690c4b4bdc8 Mon Sep 17 00:00:00 2001 From: "version-number-updater[bot]" Date: Thu, 2 Jul 2026 15:13:37 +0900 Subject: [PATCH 2/2] [skip ci] update version number --- server/app/db/version.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/app/db/version.json b/server/app/db/version.json index 0144ea538..cf9a4daa3 100644 --- a/server/app/db/version.json +++ b/server/app/db/version.json @@ -1 +1 @@ -{"version": "2026-0316-150937" } \ No newline at end of file +{"version": "2026-0702-151336" } \ No newline at end of file