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.
49 lines
2 KiB
Docker
49 lines
2 KiB
Docker
# Utilisation de votre image globale pour le build et l'exécution
|
|
FROM pazof/yavsc-build-env:debian12-dotnet10-android36-v1 AS build-env
|
|
WORKDIR /src
|
|
|
|
|
|
# 1. Copie de la solution
|
|
COPY *.sln ./
|
|
COPY Directory.*.props ./
|
|
|
|
# 2. Copie de l'intégralité des fichiers de projets (.csproj) pour la restauration
|
|
COPY src/Yavsc.Org/*.csproj ./src/Yavsc.Org/
|
|
COPY src/Yavsc.Abstract/*.csproj ./src/Yavsc.Abstract/
|
|
COPY src/Yavsc.Server/*.csproj ./src/Yavsc.Server/
|
|
COPY src/Yavsc.Web/*.csproj ./src/Yavsc.Web/
|
|
COPY src/Yavsc.Api/*.csproj ./src/Yavsc.Api/
|
|
COPY src/Yavsc.Blogs/*.csproj ./src/Yavsc.Blogs/
|
|
COPY src/cli/*.csproj ./src/cli/
|
|
COPY src/Yavsc.Org.Tests/*.csproj ./src/Yavsc.Org.Tests/
|
|
|
|
# Projets associés à PostIt
|
|
COPY src/PostIt/PostIt/*.csproj ./src/PostIt/PostIt/
|
|
COPY src/PostIt/PostIt.Android/*.csproj ./src/PostIt/PostIt.Android/
|
|
COPY src/PostIt/PostIt.Browser/*.csproj ./src/PostIt/PostIt.Browser/
|
|
COPY src/PostIt/PostIt.Desktop/*.csproj ./src/PostIt/PostIt.Desktop/
|
|
|
|
# 4. Copie de l'intégralité du code source
|
|
COPY . .
|
|
|
|
# 3. Restauration des dépendances avec vos workloads actifs
|
|
RUN dotnet nuget add source https://isn.pschneider.fr/v3/index.json --allow-insecure-connections
|
|
|
|
# 4. Restauration des dépendances pour tous les projets
|
|
RUN dotnet restore
|
|
|
|
# 5. Copie de la totalité du code source (filtrée par votre .dockerignore)
|
|
COPY . .
|
|
# Définir une variable d'architecture par défaut (ex: android-arm64)
|
|
ARG ANDROID_TARGET_RID=android-arm64
|
|
|
|
# 6. Compilation du serveur Web principal, Injecter l'option -r avec la variable
|
|
RUN dotnet build src/Yavsc.Org/Yavsc.Org.csproj -c Release --no-restore -clp:ErrorsOnly
|
|
RUN dotnet build src/Yavsc.Api/Yavsc.Api.csproj -c Release --no-restore -clp:ErrorsOnly
|
|
RUN dotnet build src/Yavsc.Blogs/Yavsc.Blogs.csproj -c Release --no-restore -clp:ErrorsOnly
|
|
|
|
# 6. Compilation du serveur Web principal Injecter l'option -r avec la variable
|
|
RUN dotnet build src/PostIt/PostIt.Android/PostIt.Android.csproj -c Release --no-restore -clp:ErrorsOnly -r ${ANDROID_TARGET_RID}
|
|
|
|
# Définition du répertoire d'exécution par défaut
|
|
CMD ["bash"]
|