# syntax=docker/dockerfile:1.7
# Image WordPress client __PROJECT_TITLE__ : part de l'image base du framework
# (WordPress + thème parent wp-reactor-base + plugin) et overlaye le thème enfant.
#
# Le thème enfant doit être BUILDÉ (vite build -> build/editor + build/blocks)
# avant d'être baké : le thème parent wp-reactor-base découvre build/blocks et
# enqueue build/editor. On le compile dans un stage node (les @wp-reactor/* sont
# tirés depuis GitHub Packages, cf .npmrc — passer NODE_AUTH_TOKEN read:packages).
# Contexte de build = racine du repo client.
FROM node:22-alpine AS theme-build
WORKDIR /app
ENV CI=true DO_NOT_TRACK=1
RUN corepack enable && corepack prepare pnpm@11.3.0 --activate
ARG NODE_AUTH_TOKEN
COPY . .
RUN printf '\n//npm.pkg.github.com/:_authToken=%s\n' "${NODE_AUTH_TOKEN}" >> .npmrc \
	&& pnpm install --frozen-lockfile \
	&& pnpm --filter @__PROJECT_NAME__/theme build \
	&& rm -f .npmrc

FROM ghcr.io/wp-reactor/wordpress-base:latest

COPY apps/wordpress/theme-__PROJECT_NAME__ /opt/__PROJECT_NAME__/theme
# Overlaye le thème compilé (build/) par-dessus les sources.
COPY --from=theme-build /app/apps/wordpress/theme-__PROJECT_NAME__/build /opt/__PROJECT_NAME__/theme/build
COPY apps/wordpress/docker/child-entrypoint.sh /usr/local/bin/__PROJECT_NAME__-entrypoint.sh
# Provisioning baké : wp-cli est dans l'image base, donc `docker exec -u 33:33
# <conteneur> __PROJECT_NAME__-bootstrap.sh` suffit (cf. docs/deploy.md §4).
COPY apps/wordpress/docker/bootstrap.sh /usr/local/bin/__PROJECT_NAME__-bootstrap.sh
RUN chmod +x /usr/local/bin/__PROJECT_NAME__-entrypoint.sh \
	/usr/local/bin/__PROJECT_NAME__-bootstrap.sh
# Lu par le bootstrap : le thème enfant est fixé par cette image.
ENV CHILD_THEME=__PROJECT_NAME__

ENTRYPOINT ["__PROJECT_NAME__-entrypoint.sh"]
CMD ["apache2-foreground"]
