diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..38bece4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,25 @@ +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/.idea +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md \ No newline at end of file diff --git a/Alchegos.Team.sln b/Alchegos.Team.sln index 0c0b0ef..36aa1d0 100644 --- a/Alchegos.Team.sln +++ b/Alchegos.Team.sln @@ -14,6 +14,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Alchegos.Analyst", "Alchego EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Alchegos.Core", "Alchegos.Core\Alchegos.Core.csproj", "{795D59B1-D326-4D04-ACAD-96D3285D0072}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Alchegos.Tests", "Alchegos.Tests\Alchegos.Tests.csproj", "{F08B3631-314E-4D84-BDC5-103E72904175}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{34F54150-6BE6-4547-BA5A-51B707D4E377}" + ProjectSection(SolutionItems) = preProject + docker-compose.yaml = docker-compose.yaml + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -52,5 +59,9 @@ Global {795D59B1-D326-4D04-ACAD-96D3285D0072}.Debug|Any CPU.Build.0 = Debug|Any CPU {795D59B1-D326-4D04-ACAD-96D3285D0072}.Release|Any CPU.ActiveCfg = Release|Any CPU {795D59B1-D326-4D04-ACAD-96D3285D0072}.Release|Any CPU.Build.0 = Release|Any CPU + {F08B3631-314E-4D84-BDC5-103E72904175}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F08B3631-314E-4D84-BDC5-103E72904175}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F08B3631-314E-4D84-BDC5-103E72904175}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F08B3631-314E-4D84-BDC5-103E72904175}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/Alchegos.Tests/Dockerfile b/Alchegos.Tests/Dockerfile new file mode 100644 index 0000000..dfb0b30 --- /dev/null +++ b/Alchegos.Tests/Dockerfile @@ -0,0 +1,21 @@ +FROM mcr.microsoft.com/dotnet/runtime:9.0 AS base +USER $APP_UID +WORKDIR /app + +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["Alchegos.Tests/Alchegos.Tests.csproj", "Alchegos.Tests/"] +RUN dotnet restore "Alchegos.Tests/Alchegos.Tests.csproj" +COPY . . +WORKDIR "/src/Alchegos.Tests" +RUN dotnet build "Alchegos.Tests.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "Alchegos.Tests.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "Alchegos.Tests.dll"] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..bbd824e --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,69 @@ +version: "3" + +networks: + alchegos: + external: false + +services: + gitea: + image: docker.gitea.com/gitea:1.23.5 + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=mysql + - GITEA__database__HOST=db:3306 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=gitea + - GITEA__webhook__ALLOWED_HOST_LIST=alchegos_gitea_webhook + restart: always + networks: + - alchegos + volumes: + - ./gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "5555:3000" + - "222:22" + depends_on: + - db + + db: + image: docker.io/library/mysql:8 + restart: always + environment: + - MYSQL_ROOT_PASSWORD=gitea + - MYSQL_USER=gitea + - MYSQL_PASSWORD=gitea + - MYSQL_DATABASE=gitea + networks: + - alchegos + volumes: + - ./mysql:/var/lib/mysql + + alchegos_gitea_webhook: + build: + context: ./Alchegos.Gitea.Webhook + dockerfile: Dockerfile + depends_on: + - gitea + networks: + - alchegos + ports: + - "8080:8080" + + rabbitmq: + image: rabbitmq:4.0-management + container_name: rabbitmq + restart: always + environment: + - RABBITMQ_DEFAULT_USER=guest + - RABBITMQ_DEFAULT_PASS=guest + networks: + - alchegos + ports: + - "7777:5672" + - "17777:15672" + \ No newline at end of file