Update Dockerfile for multi-architecture support and enhance coding rules

- Modify Dockerfile to support multi-platform builds using TARGETARCH.
- Update coderule.mdc to enforce source code organization under the `src/` directory.
- Remove outdated rule from python.mdc regarding `src/` layout.
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-04-06 05:03:27 +03:00
parent 2528a1e995
commit 37bee961ab
3 changed files with 5 additions and 3 deletions
+1
View File
@@ -21,3 +21,4 @@ alwaysApply: true
- Make sure we don't commit binaries, create and keep .gitignore up to date and delete binaries after you are done with the task - Make sure we don't commit binaries, create and keep .gitignore up to date and delete binaries after you are done with the task
- Never force-push to main or dev branches - Never force-push to main or dev branches
- Place all source code under the `src/` directory; keep project-level config, tests, and tooling at the repo root
-1
View File
@@ -8,7 +8,6 @@ globs: ["**/*.py", "**/pyproject.toml", "**/requirements*.txt"]
- Use type hints on all function signatures; validate with `mypy` or `pyright` - Use type hints on all function signatures; validate with `mypy` or `pyright`
- Use `pydantic` for data validation and serialization - Use `pydantic` for data validation and serialization
- Import order: stdlib -> third-party -> local; use absolute imports - Import order: stdlib -> third-party -> local; use absolute imports
- Use `src/` layout to separate app code from project files
- Use context managers (`with`) for resource management - Use context managers (`with`) for resource management
- Catch specific exceptions, never bare `except:`; use custom exception classes - Catch specific exceptions, never bare `except:`; use custom exception classes
- Use `async`/`await` with `asyncio` for I/O-bound concurrency - Use `async`/`await` with `asyncio` for I/O-bound concurrency
+4 -2
View File
@@ -1,7 +1,9 @@
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG TARGETARCH
WORKDIR /src WORKDIR /src
COPY . . COPY . .
RUN dotnet publish -c Release -o /app RUN arch=$([ "$TARGETARCH" = "amd64" ] && echo "x64" || echo "$TARGETARCH") && \
dotnet publish -c Release -o /app --os linux --arch $arch
FROM mcr.microsoft.com/dotnet/aspnet:10.0 FROM mcr.microsoft.com/dotnet/aspnet:10.0
WORKDIR /app WORKDIR /app