From 89c326a8b7b56f08348b8a7b11824b79a80cf988 Mon Sep 17 00:00:00 2001 From: alex289 Date: Sat, 15 Jul 2023 11:30:45 +0200 Subject: [PATCH] Add kubernetes and docker compose files --- Dockerfile | 2 ++ docker-compose.yml | 19 +++++++++++++ k8s-deployment.yml | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 docker-compose.yml create mode 100644 k8s-deployment.yml diff --git a/Dockerfile b/Dockerfile index db05150..638c524 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,4 +13,6 @@ RUN dotnet publish -c Release -o out FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime WORKDIR /app COPY --from=build /app/CleanArchitecture.Api/out ./ + +EXPOSE 80 ENTRYPOINT ["dotnet", "CleanArchitecture.Api.dll"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f1b1c2c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3" +services: + app: + build: + context: . + dockerfile: Dockerfile + ports: + - 80:80 + depends_on: + - db + links: + - db + db: + image: mcr.microsoft.com/mssql/server + environment: + - ACCEPT_EULA=Y + - SA_PASSWORD=YourStrongPassword + ports: + - 1433:1433 diff --git a/k8s-deployment.yml b/k8s-deployment.yml new file mode 100644 index 0000000..85b8d6c --- /dev/null +++ b/k8s-deployment.yml @@ -0,0 +1,67 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: clean-architecture-app +spec: + replicas: 1 + selector: + matchLabels: + app: clean-architecture-app + template: + metadata: + labels: + app: clean-architecture-app + spec: + containers: + - name: clean-architecture-app + image: mcr.microsoft.com/dotnet/sdk:7.0 + workingDir: /app + command: ["dotnet", "CleanArchitecture.Api.dll"] + ports: + - containerPort: 80 + volumeMounts: + - name: app-volume + mountPath: /app + volumes: + - name: app-volume + emptyDir: {} + +--- +apiVersion: v1 +kind: Service +metadata: + name: clean-architecture-service +spec: + selector: + app: clean-architecture-app + ports: + - protocol: TCP + port: 80 + targetPort: 80 + type: LoadBalancer + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sql-server +spec: + replicas: 1 + selector: + matchLabels: + app: sql-server + template: + metadata: + labels: + app: sql-server + spec: + containers: + - name: sql-server + image: mcr.microsoft.com/mssql/server + env: + - name: ACCEPT_EULA + value: "Y" + - name: SA_PASSWORD + value: "YourStrongPassword" + ports: + - containerPort: 1433