{"id":17255637,"url":"https://github.com/ffmathy/pulldog.aspnetcore","last_synced_at":"2026-02-02T03:33:43.066Z","repository":{"id":83143794,"uuid":"279414835","full_name":"ffMathy/pulldog.aspnetcore","owner":"ffMathy","description":"Todo","archived":false,"fork":false,"pushed_at":"2020-07-13T21:30:46.000Z","size":927,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-22T18:28:30.103Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ffMathy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-07-13T21:24:36.000Z","updated_at":"2020-10-01T04:30:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"9a651ea0-61f5-431a-a929-4c489f1bdb2d","html_url":"https://github.com/ffMathy/pulldog.aspnetcore","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"22ed2f8fa6e71827d1c20d3abba841e2130a5f15"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ffMathy/pulldog.aspnetcore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ffMathy%2Fpulldog.aspnetcore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ffMathy%2Fpulldog.aspnetcore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ffMathy%2Fpulldog.aspnetcore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ffMathy%2Fpulldog.aspnetcore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ffMathy","download_url":"https://codeload.github.com/ffMathy/pulldog.aspnetcore/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ffMathy%2Fpulldog.aspnetcore/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261789227,"owners_count":23209774,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T07:12:14.358Z","updated_at":"2026-02-02T03:33:43.016Z","avatar_url":"https://github.com/ffMathy.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# pulldog.aspnetcore\n\nThis is a small guide for getting started with pulldog. Pulldog is an automated test environments from your docker-compose.yml file for every pull request you open. It includes a free tier which alow users to use a shared pool of servers.\n\n# Starting the project\n\nThis project will be based on the AspNet Core WebApp template using Razor pages. But feel free to use whatever floats your boat.\n\nI will be starting creating a new project from the commandline. \n\n```shell\n$ dotnet new webapp\n```\n\n![dotnetnew.png](Assets/dotnetnew.png)\n\nRunning the project will just show you the basic template page like so:\n\n![basic.png](Assets/basic.png)\n\n# Dockerize\n\n![docker.png](Assets/docker.png)\n\nWith the code running we can start creating our dockerfile, which will later be used by pulldog to create a test enviroment.\n\nI used this example to create my own dockerfile:\nhttps://docs.docker.com/engine/examples/dotnetcore/\n\nAnd you can see the result below here.\n\n```dockerfile\nFROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env\nWORKDIR /app\n\n# Copy csproj and restore as distinct layers\nCOPY *.csproj ./\nRUN dotnet restore\n\n# Copy everything else and build\nCOPY . ./\nRUN dotnet publish -c Release -o out\n\n# Build runtime image\nFROM mcr.microsoft.com/dotnet/core/aspnet:3.1\nWORKDIR /app\nCOPY --from=build-env /app/out .\nENTRYPOINT [\"dotnet\", \"pulldog.aspnetcore.dll\"]\n```\n\nWith the dockerfile in place, we can now focus on creating a docker-compose.yml file. Again I used docs from docker own homepage to build it. I am sharing an advanced docker-compose.yml file which also shows how you could start a MsSQL database with your project. You can find it here: https://docs.docker.com/compose/aspnet-mssql-compose/\n\nIf you are starting from scratch like me you can just use the same on as me below here:\n\n```docker-compose.yml\nversion: \"3\"\nservices:\n    web:\n        build: .\n        ports:\n            - \"5000:80\"\n```\n\nTo test it all out try and run the project using the docker-compose.yml file.\n\n```shell\n$ docker-compose -f \"docker-compose.yml\" up -d --build\n```\nYou should then be able to visit the site again on port 5000.\n\n![docker-compose.png](Assets/docker-compose.png)\n\n\n# Who let the dogs out\n\n![dogger.png](Assets/dogger.svg)\n\nhttps://dogger.io/\n\nhttps://github.com/apps/pull-dog\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nDisclaimer. Pulldog is made by a good friend of mine.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fffmathy%2Fpulldog.aspnetcore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fffmathy%2Fpulldog.aspnetcore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fffmathy%2Fpulldog.aspnetcore/lists"}