67b07634ae
- app/: Emdash scaffold (Astro 6, node target) with cmses/plugins/pages collections - app/seed/seed.json: WordPress→Emdash parity for kotkanagrilli.fi (~30 entries) - Dockerfile + docker/entrypoint.sh: multi-stage build, single PVC at /app/state - deploy/helm/: chart mirroring emdash-kotkanagrilli (single-replica, sqlite, kotkan) - deploy/fleet-overlay/: HelmRelease/source/image-automation templates for anton-helm-workloads (staging + production) - .woodpecker/container.yaml: arm64 build, three OCI tags per push (immutable 0.1.<pipeline> + floating <branch> + <branch>-latest) - .ddev/: local dev with nginx proxy to emdash on :4321 - README/DEPLOYMENT/ARCHITECTURE/CLAUDE: docs covering the three-repo pipeline (cms-plugins + anton-helm-workloads + Gitea OCI registry)
49 lines
1.5 KiB
YAML
49 lines
1.5 KiB
YAML
# Development container for the emdash app. Bind-mounts ../app from
|
|
# the host and runs `npx emdash dev` so source edits hot-reload. The
|
|
# production image is built separately from the root Dockerfile and
|
|
# consumed by deploy/helm/ — DDEV is *not* a prod-parity smoke test.
|
|
|
|
services:
|
|
emdash:
|
|
container_name: ddev-${DDEV_SITENAME}-emdash
|
|
image: node:22-bookworm-slim
|
|
working_dir: /app
|
|
restart: "no"
|
|
expose:
|
|
- "4321"
|
|
env_file:
|
|
- ../app/.env
|
|
environment:
|
|
HOST: "0.0.0.0"
|
|
PORT: "4321"
|
|
NODE_ENV: "development"
|
|
EMDASH_ALLOWED_ORIGINS: "https://cms-plugins.ddev.site"
|
|
EMDASH_SITE_URL: "https://cms-plugins.ddev.site"
|
|
volumes:
|
|
- ../app:/app:cached
|
|
# Anonymous-ish named volume for node_modules so the host's
|
|
# (possibly empty / wrong-arch) directory doesn't shadow what
|
|
# the container installs.
|
|
- emdash-node-modules:/app/node_modules
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
set -eu
|
|
if [ ! -d node_modules ] || [ -z "$$(ls -A node_modules 2>/dev/null)" ]; then
|
|
echo "[emdash] installing deps"
|
|
apt-get update && apt-get install -y --no-install-recommends python3 make g++ ca-certificates >/dev/null
|
|
npm install
|
|
fi
|
|
if [ ! -f data.db ]; then
|
|
echo "[emdash] running emdash init"
|
|
node_modules/.bin/emdash init
|
|
fi
|
|
exec npx emdash dev
|
|
labels:
|
|
com.ddev.site-name: ${DDEV_SITENAME}
|
|
com.ddev.approot: $DDEV_APPROOT
|
|
|
|
volumes:
|
|
emdash-node-modules:
|