Commit graph

31 commits

Author SHA1 Message Date
6f975f87af docker: refactor Dockerfile into multi-stage build
Rewrite Dockerfile as a single multi-stage file with seven
stages:

  build-env        : base image + restore + build + publish
                     (default target, keeps docker-publish-android
                     workflow functional — it just needs the APK)
  publish-org      : isolated copy of Yavsc.Org publish output
  publish-api      : same for Yavsc.Api
  publish-blogs    : same for Yavsc.Blogs
  web-runtime      : ASP.NET image for Yavsc.Org (port 5000)
  api-runtime      : ASP.NET image for Yavsc.Api (port 5002)
  blogs-runtime    : ASP.NET image for Yavsc.Blogs (port 5004)

Before this commit, the runtime images tried to COPY from an
external pazof/yavsc-build-env image that did not contain the
published artifacts (only built them, never published). The
multi-stage fix moves the publish step and the runtime copy
into the same Dockerfile, so COPY --from=publish-org etc.
reference local stages — no external artifact coupling.

The build-env tag is now exposed as ARG BUILD_ENV_TAG (default
debian12-dotnet10-android36-v1) so docker-compose can override
it via build.args without editing the Dockerfile.
2026-06-27 16:31:32 +01:00
2d472779b0 drop Yavsc.Web references from Dockerfiles, ROADMAP, arch doc
Yavsc.Web is an empty template/draft project — no useful code,
conceptually a duplicate of the front that lives in Yavsc.Org.
Remove its mentions from:

- Dockerfile, Dockerfile.backend: the COPY src/Yavsc.Web/*.csproj
  step is useless (the project is referenced nowhere downstream)
- ROADMAP.md: the 'Perimetre technique' table no longer lists it
- doc/architecture/decoupage-organisation.md: removed from the
  ASCII diagram and the per-project table

Note: this commit only removes references; the empty project
itself (src/Yavsc.Web/) and the yavsc.sln Project() entry are
left in place for now. A future commit can rm -rf the directory
and prune the .sln when we're sure nothing else still depends
on it.
2026-06-27 16:24:27 +01:00
d068ff4061 docker: publish Yavsc.Org / Api / Blogs artifacts to /app/publish
Add a 'dotnet publish' step at the end of both Dockerfiles so the
runtime images (Dockerfile.runtime / .blogs / .api) can COPY the
published output via --from=build-env.

Before this commit, the Dockerfiles only ran 'dotnet build' and
ended with CMD ["bash"] — i.e. they were pure build-env images
with no consumable artifact for runtime use.

Dockerfile publishes Yavsc.Org, Yavsc.Api and Yavsc.Blogs (used
by docker-publish-android.yml which extracts the APK).
Dockerfile.backend publishes Yavsc.Org only (used by
docker-publish-backend.yml for the pazof/yavsc production image).

Appsettings are NOT published: they are supplied at runtime via
BuildKit --mount=type=secret (see Dockerfile.runtime in the next
commits) or via a docker-compose volume.
2026-06-27 16:12:16 +01:00
c780ddfb07 docker: pin build-env image to a versioned tag
Replace ':latest' with ':debian12-dotnet10-android36-v1' in
both Dockerfiles so the build is reproducible. The build-env
image is constructed from /home/paul/Workspace/dotnet-android-
build-image and pushed to Docker Hub under that tag.

When the build-env image is rebuilt (new dotnet SDK, new
Android SDK, etc.), bump this tag and rebuild the image locally
before re-running the workflows.

The two Dockerfiles serve different GitHub Actions workflows:

- Dockerfile: builds everything including PostIt.Android;
  used by .github/workflows/docker-publish-android.yml to
  extract the signed APK.
- Dockerfile.backend: builds only Yavsc.Org; used by
  .github/workflows/docker-publish-backend.yml to produce the
  pazof/yavsc production image.
2026-06-27 15:58:29 +01:00
196106c048 Test reorg 2026-06-19 20:07:05 +01:00
ed0f89ab12 Re ARG fix* 2026-06-07 12:57:41 +01:00
eb5f0eb2cd use -r only for android build 2026-06-07 12:41:59 +01:00
addf24a8f1 user -r only for android build 2026-06-07 12:34:44 +01:00
6ceec55ed9 build --build-arg TARGET_RID=android-arm64 2026-06-07 12:19:18 +01:00
4b9bf57a51 trying the target plan 2026-06-07 11:42:08 +01:00
04a60f104e docker build . <<< Ok 2026-06-07 11:11:15 +01:00
de88b22303 Dockerfiles ... 2026-06-07 09:01:21 +01:00
b8ba7cc511 build split 2026-06-07 08:33:58 +01:00
78b01d794e -clp:ErrorsOnly 2026-06-07 08:12:54 +01:00
16e6c56d6c copie de tout le code source 2026-06-07 07:35:42 +01:00
0730a760a5 don(t ignore dockerignore 2026-06-07 07:20:47 +01:00
4ede3af5c7 dotnet build -c Release --no-restore 2026-06-07 07:08:40 +01:00
77b97aaa5e build w\ Avalonia Android and Browser 2026-06-07 06:06:19 +01:00
0533de7750 initial import 2026-06-07 04:30:05 +01:00
22c4cf0d1c trying sdk6 2026-06-07 01:18:01 +01:00
b725c4f3d8 workload install and restore 2026-06-07 01:13:06 +01:00
3a1ca2c8ff workload restore 2026-06-07 01:11:23 +01:00
af570d06a7 android 2026-06-07 00:43:49 +01:00
069b9df478 add isnd source 2026-05-30 15:57:59 +01:00
c99b3180ad Fixes the project path 2026-05-30 15:49:10 +01:00
a90cdc08b8 docker composes 2026-05-30 15:41:59 +01:00
Paul Schneider
866619c539 init a Dockerfile 2026-02-07 23:44:51 +00:00
Paul Schneider
a68287d847 Dockerfile & actions 2026-02-02 00:39:24 +00:00
Paul Schneider
94c11e6afa try and trigger the workflow_dispatch event 2025-06-11 14:28:00 +01:00
Paul Schneider
e696db9258 net-8 needed 2025-06-08 15:24:09 +01:00
Paul Schneider
0279ee3df4 initial version 2025-06-08 14:40:44 +01:00