Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .codepress/dev-server/Dockerfile.web
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# 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-slim

# No extra system packages needed for this frontend.
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*

RUN corepack enable

WORKDIR /app

# THIN image: no `node_modules`, no source COPY. The dev-server runtime provides
# dependencies at run time (squashfs hydration, or `yarn install` in this image
# against the bind-mounted checkout). Only the toolchain lives here.

# HMR + bind config — values come from the runtime, never hardcoded.
# CRA reads HOST (bind address) and WDS_SOCKET_PORT (HMR websocket public port).
ENV HOSTNAME=0.0.0.0 \
HOST=0.0.0.0 \
PORT=3000 \
CODEPRESS_HMR_CLIENT_PORT=443 \
CODEPRESS_HMR_PROTOCOL=wss

WORKDIR /app/web
EXPOSE 3000

# Put workspace bins on PATH so the dev command resolves node_modules/.bin
# at runtime (hydration / runtime install populates these).
ENV PATH="/app/web/node_modules/.bin:/app/node_modules/.bin:${PATH}"

# CRA: wrap start with WDS_SOCKET_PORT so the webpack-dev-server HMR client
# connects to the public (proxied) port, not the container-internal port.
CMD ["sh", "-c", "WDS_SOCKET_PORT=$CODEPRESS_HMR_CLIENT_PORT yarn start"]
18 changes: 18 additions & 0 deletions .codepress/dev-server/recipe.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"schema_version": 1,
"bootstrapped_at": "2026-06-24T06:18:00Z",
"discovery_branch": "master",
"frontends": [
{
"label": "web",
"working_dir": "web",
"dockerfile_path": ".codepress/dev-server/Dockerfile.web",
"dev_command": "yarn start",
"framework": "cra",
"package_manager": "yarn",
"dev_port": 3000,
"system_packages": [],
"size": "small"
}
]
}