diff --git a/.codepress/dev-server/Dockerfile.web b/.codepress/dev-server/Dockerfile.web new file mode 100644 index 0000000..f391956 --- /dev/null +++ b/.codepress/dev-server/Dockerfile.web @@ -0,0 +1,28 @@ +# Generated by CodePress bootstrap-dev-server. +# Dev-mode image for the "web" frontend (Live Dev Server). +# Edits are preserved, but running /codepress-bootstrap-dev-server again may overwrite them. +FROM public.ecr.aws/docker/library/node:22-bookworm + +RUN apt-get update \ + && apt-get install -y --no-install-recommends procps \ + && rm -rf /var/lib/apt/lists/* + +RUN corepack enable +WORKDIR /app + +# THIN image: no node_modules or source COPY. The dev-server runtime provides +# dependencies at run time against the bind-mounted checkout. +ENV HOSTNAME=0.0.0.0 \ + CODEPRESS_BIND_HOST=0.0.0.0 \ + PORT=3000 \ + CODEPRESS_HMR_CLIENT_PORT=443 \ + CODEPRESS_HMR_PROTOCOL=wss + +WORKDIR /app/web +EXPOSE 3000 + +ENV PATH="/app/web/node_modules/.bin:/app/node_modules/.bin:${PATH}" + +# CRA reads HOST, PORT, and WDS_SOCKET_PORT. The wrapper keeps HMR on the +# browser-visible preview port while binding the server to the container network. +CMD ["sh", "-c", "HOST=\"$CODEPRESS_BIND_HOST\" WDS_SOCKET_PORT=\"$CODEPRESS_HMR_CLIENT_PORT\" yarn start"] diff --git a/.codepress/dev-server/recipe.json b/.codepress/dev-server/recipe.json new file mode 100644 index 0000000..98e25df --- /dev/null +++ b/.codepress/dev-server/recipe.json @@ -0,0 +1,26 @@ +{ + "schema_version": 1, + "bootstrapped_at": "2026-07-27T05:39:11Z", + "discovery_branch": "codepress/dev@codepress.dev/bootstrap-live-dev-server-artifacts-15072f0c", + "frontends": [ + { + "label": "web", + "working_dir": "web", + "dockerfile_path": ".codepress/dev-server/Dockerfile.web", + "dev_command": "yarn start", + "prebuild_command": "", + "prebuild_inputs": [], + "framework": "cra", + "package_manager": "yarn", + "install_command": "yarn install --frozen-lockfile", + "dependency_manifests": [ + "web/yarn.lock" + ], + "dev_port": 3000, + "system_packages": [ + "procps" + ], + "size": "small" + } + ] +}