Merge pull request 'fix(seo): enforce PUBLIC_SITE at docker build (canonical/sitemap) + set per blue/green' (#105) from fix/canonical-public-site into main
Reviewed-on: #105
This commit was merged in pull request #105.
This commit is contained in:
18
Dockerfile
18
Dockerfile
@@ -12,7 +12,7 @@ ENV npm_config_update_notifier=false \
|
|||||||
# (Optionnel mais propre) git + certificats
|
# (Optionnel mais propre) git + certificats
|
||||||
RUN apt-get -o Acquire::Retries=5 -o Acquire::ForceIPv4=true update \
|
RUN apt-get -o Acquire::Retries=5 -o Acquire::ForceIPv4=true update \
|
||||||
&& apt-get install -y --no-install-recommends ca-certificates git \
|
&& apt-get install -y --no-install-recommends ca-certificates git \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Déps d’abord (cache Docker)
|
# Déps d’abord (cache Docker)
|
||||||
COPY package.json package-lock.json ./
|
COPY package.json package-lock.json ./
|
||||||
@@ -25,9 +25,21 @@ COPY . .
|
|||||||
ARG PUBLIC_GITEA_BASE
|
ARG PUBLIC_GITEA_BASE
|
||||||
ARG PUBLIC_GITEA_OWNER
|
ARG PUBLIC_GITEA_OWNER
|
||||||
ARG PUBLIC_GITEA_REPO
|
ARG PUBLIC_GITEA_REPO
|
||||||
|
|
||||||
|
# ✅ Canonical + sitemap base (astro.config.mjs lit process.env.PUBLIC_SITE)
|
||||||
|
ARG PUBLIC_SITE
|
||||||
|
|
||||||
|
# ✅ Garde-fou : si 1 → build fail si PUBLIC_SITE absent
|
||||||
|
ARG REQUIRE_PUBLIC_SITE=0
|
||||||
|
|
||||||
ENV PUBLIC_GITEA_BASE=$PUBLIC_GITEA_BASE \
|
ENV PUBLIC_GITEA_BASE=$PUBLIC_GITEA_BASE \
|
||||||
PUBLIC_GITEA_OWNER=$PUBLIC_GITEA_OWNER \
|
PUBLIC_GITEA_OWNER=$PUBLIC_GITEA_OWNER \
|
||||||
PUBLIC_GITEA_REPO=$PUBLIC_GITEA_REPO
|
PUBLIC_GITEA_REPO=$PUBLIC_GITEA_REPO \
|
||||||
|
PUBLIC_SITE=$PUBLIC_SITE \
|
||||||
|
REQUIRE_PUBLIC_SITE=$REQUIRE_PUBLIC_SITE
|
||||||
|
|
||||||
|
# ✅ antifragile : refuse de builder sans PUBLIC_SITE quand on l’exige
|
||||||
|
RUN node -e "if (process.env.REQUIRE_PUBLIC_SITE==='1' && !process.env.PUBLIC_SITE) { console.error('FATAL: PUBLIC_SITE is required (canonical/sitemap).'); process.exit(1) }"
|
||||||
|
|
||||||
# Build Astro (postbuild tourne via npm scripts)
|
# Build Astro (postbuild tourne via npm scripts)
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
@@ -38,4 +50,4 @@ COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|||||||
COPY --from=build /app/dist/ /usr/share/nginx/html/
|
COPY --from=build /app/dist/ /usr/share/nginx/html/
|
||||||
RUN find /usr/share/nginx/html -type d -exec chmod 755 {} \; \
|
RUN find /usr/share/nginx/html -type d -exec chmod 755 {} \; \
|
||||||
&& find /usr/share/nginx/html -type f -exec chmod 644 {} \;
|
&& find /usr/share/nginx/html -type f -exec chmod 644 {} \;
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
@@ -5,6 +5,8 @@ services:
|
|||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
network: host
|
network: host
|
||||||
args:
|
args:
|
||||||
|
REQUIRE_PUBLIC_SITE: "1"
|
||||||
|
PUBLIC_SITE: "https://staging.archicratie.trans-hands.synology.me"
|
||||||
PUBLIC_GITEA_BASE: ${PUBLIC_GITEA_BASE}
|
PUBLIC_GITEA_BASE: ${PUBLIC_GITEA_BASE}
|
||||||
PUBLIC_GITEA_OWNER: ${PUBLIC_GITEA_OWNER}
|
PUBLIC_GITEA_OWNER: ${PUBLIC_GITEA_OWNER}
|
||||||
PUBLIC_GITEA_REPO: ${PUBLIC_GITEA_REPO}
|
PUBLIC_GITEA_REPO: ${PUBLIC_GITEA_REPO}
|
||||||
@@ -20,6 +22,8 @@ services:
|
|||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
network: host
|
network: host
|
||||||
args:
|
args:
|
||||||
|
REQUIRE_PUBLIC_SITE: "1"
|
||||||
|
PUBLIC_SITE: "https://archicratie.trans-hands.synology.me"
|
||||||
PUBLIC_GITEA_BASE: ${PUBLIC_GITEA_BASE}
|
PUBLIC_GITEA_BASE: ${PUBLIC_GITEA_BASE}
|
||||||
PUBLIC_GITEA_OWNER: ${PUBLIC_GITEA_OWNER}
|
PUBLIC_GITEA_OWNER: ${PUBLIC_GITEA_OWNER}
|
||||||
PUBLIC_GITEA_REPO: ${PUBLIC_GITEA_REPO}
|
PUBLIC_GITEA_REPO: ${PUBLIC_GITEA_REPO}
|
||||||
@@ -27,4 +31,4 @@ services:
|
|||||||
container_name: archicratie-web-green
|
container_name: archicratie-web-green
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:8082:80"
|
- "127.0.0.1:8082:80"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
Reference in New Issue
Block a user