diff --git a/.woodpecker.yml b/.woodpecker.yml index bc53b90..e2e0f7b 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -130,11 +130,9 @@ steps: set -euf cd "${CI_WORKSPACE}" - # Logowanie do rejestru echo "${PLUGIN_PASSWORD}" | docker login "${PLUGIN_REGISTRY}" -u "${PLUGIN_USERNAME}" --password-stdin - # Restore raz jeszcze – bo w tym kroku nie mamy zależności od wcześniejszego restore - dotnet restore + dotnet restore # na wszelki wypadek find . -name "*.csproj" -type f | while read csproj; do PROJECT_DIR=$(dirname "$csproj") @@ -148,27 +146,27 @@ steps: continue fi - IMAGE_NAME="projekty/${PROJECT_NAME,,}" # np. projekty/customerapi + IMAGE_NAME="projekty/${PROJECT_NAME,,}" FULL_IMAGE="${PLUGIN_REGISTRY}/${IMAGE_NAME}" - # Generujemy tymczasowy Dockerfile - cat <<'EOF' > "${PROJECT_DIR}/Dockerfile.temp" -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base -WORKDIR /app -EXPOSE 8080 + # Blok heredoc z wcięciem 10 spacji – YAML to zaakceptuje + cat > "${PROJECT_DIR}/Dockerfile.temp" <<-EOF + FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base + WORKDIR /app + EXPOSE 8080 -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -WORKDIR /src -COPY . . -RUN dotnet restore "${PROJECT_NAME}.csproj" -RUN dotnet publish "${PROJECT_NAME}.csproj" -c Release -o /app/publish /p:UseAppHost=false + FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build + WORKDIR /src + COPY . . + RUN dotnet restore "${PROJECT_NAME}.csproj" + RUN dotnet publish "${PROJECT_NAME}.csproj" -c Release -o /app/publish /p:UseAppHost=false -FROM base AS final -WORKDIR /app -COPY --from=build /app/publish . -ENV ASPNETCORE_URLS=http://+:8080 -ENTRYPOINT ["dotnet", "${PROJECT_NAME}.dll"] -EOF + FROM base AS final + WORKDIR /app + COPY --from=build /app/publish . + ENV ASPNETCORE_URLS=http://+:8080 + ENTRYPOINT ["dotnet", "${PROJECT_NAME}.dll"] + EOF echo "Buduję → ${FULL_IMAGE}:${CI_COMMIT_SHA}" docker buildx build --platform linux/amd64 \