Adds the ACL multi-stage Dockerfile and .dockerignore, and expands infra/docker-compose.yml from the BFF-only stub to the full development stack (OpenZaak, NRC, Keycloak, Flowable, ACL, BFF). Without these files a fresh checkout cannot satisfy `make smoke`'s `docker compose up --build --wait` step, so `make ci` could never go green. `make lint && make build && make unit` verified green locally. `make smoke` requires Docker Compose v2 (`--wait` flag); on this dev box only podman-compose is available — smoke will be verified on the respellion-linux CI runner once it is registered (see docs/runbooks/ci.md). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
33 lines
1.0 KiB
Docker
33 lines
1.0 KiB
Docker
# Multi-stage build for the ACL service (.NET 10).
|
|
# Build context is services/acl (see infra/docker-compose.yml).
|
|
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
|
|
WORKDIR /src
|
|
|
|
# Restore first (cached unless .csproj files change).
|
|
COPY Acl.Api/Acl.Api.csproj Acl.Api/
|
|
COPY Acl.Application/Acl.Application.csproj Acl.Application/
|
|
COPY Acl.Infrastructure/Acl.Infrastructure.csproj Acl.Infrastructure/
|
|
RUN dotnet restore Acl.Api/Acl.Api.csproj
|
|
|
|
COPY Acl.Api/ Acl.Api/
|
|
COPY Acl.Application/ Acl.Application/
|
|
COPY Acl.Infrastructure/ Acl.Infrastructure/
|
|
RUN dotnet publish Acl.Api/Acl.Api.csproj -c Release -o /app/publish /p:UseAppHost=false
|
|
|
|
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime
|
|
WORKDIR /app
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends curl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=build /app/publish .
|
|
|
|
ENV ASPNETCORE_URLS=http://+:8080
|
|
EXPOSE 8080
|
|
|
|
HEALTHCHECK --interval=5s --timeout=3s --start-period=10s --retries=5 \
|
|
CMD curl -fsS http://localhost:8080/health || exit 1
|
|
|
|
ENTRYPOINT ["dotnet", "Acl.Api.dll"]
|