{"id":17922023,"url":"https://github.com/mritd/autobuild","last_synced_at":"2025-03-24T02:32:10.583Z","repository":{"id":64312216,"uuid":"393252323","full_name":"mritd/autobuild","owner":"mritd","description":"Earthly Auto Build Repo","archived":false,"fork":false,"pushed_at":"2025-02-27T01:56:15.000Z","size":1395,"stargazers_count":36,"open_issues_count":0,"forks_count":12,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-19T02:38:04.499Z","etag":null,"topics":["autobuild","docker","dockerfile","earthfile","earthly"],"latest_commit_sha":null,"homepage":"","language":"Earthly","has_issues":true,"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/mritd.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-06T04:43:40.000Z","updated_at":"2025-03-10T18:08:46.000Z","dependencies_parsed_at":"2024-02-02T08:28:06.006Z","dependency_job_id":"8a62cbb7-caff-44e6-b6db-3aa443bc734a","html_url":"https://github.com/mritd/autobuild","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mritd%2Fautobuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mritd%2Fautobuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mritd%2Fautobuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mritd%2Fautobuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mritd","download_url":"https://codeload.github.com/mritd/autobuild/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245198669,"owners_count":20576412,"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":["autobuild","docker","dockerfile","earthfile","earthly"],"created_at":"2024-10-28T20:37:14.601Z","updated_at":"2025-03-24T02:32:10.577Z","avatar_url":"https://github.com/mritd.png","language":"Earthly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Earthly Auto Build Repo\n\n\u003e This repo contains the Earthfile of some useful images under the Docker Hub [`mritd`](https://hub.docker.com/u/mritd) user.\n\n\n| Status                                                                                                                                                                                        | Docker Hub                                                                                         |\n| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |\n| [![mritd/alpine](https://github.com/mritd/autobuild/actions/workflows/alpine.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/alpine.yaml)                               | [https://hub.docker.com/r/mritd/alpine](https://hub.docker.com/r/mritd/alpine)                     |\n| [![mritd/caddy](https://github.com/mritd/autobuild/actions/workflows/caddy.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/caddy.yaml)                                  | [https://hub.docker.com/r/mritd/caddy](https://hub.docker.com/r/mritd/caddy)                       |\n| [![mritd/confluence](https://github.com/mritd/autobuild/actions/workflows/confluence.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/confluence.yaml)                   | [https://hub.docker.com/r/mritd/confluence](https://hub.docker.com/r/mritd/confluence)             |\n| [![mritd/ddns](https://github.com/mritd/autobuild/actions/workflows/ddns.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/ddns.yaml)                                     | [https://hub.docker.com/r/mritd/ddns](https://hub.docker.com/r/mritd/ddns)                         |\n| [![mritd/demo](https://github.com/mritd/autobuild/actions/workflows/demo.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/demo.yaml)                                     | [https://hub.docker.com/r/mritd/demo](https://hub.docker.com/r/mritd/demo)                         |\n| [![mritd/derper](https://github.com/mritd/autobuild/actions/workflows/derper.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/derper.yaml)                               | [https://hub.docker.com/r/mritd/derper](https://hub.docker.com/r/mritd/derper)                     |\n| [![mritd/idgen](https://github.com/mritd/autobuild/actions/workflows/idgen.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/idgen.yaml)                                  | [https://hub.docker.com/r/mritd/idgen](https://hub.docker.com/r/mritd/idgen)                       |\n| [![mritd/jira](https://github.com/mritd/autobuild/actions/workflows/jira.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/jira.yaml)                                     | [https://hub.docker.com/r/mritd/jira](https://hub.docker.com/r/mritd/jira)                         |\n| [![mritd/nginx-singlepage](https://github.com/mritd/autobuild/actions/workflows/nginx-singlepage.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/nginx-singlepage.yaml) | [https://hub.docker.com/r/mritd/nginx-singlepage](https://hub.docker.com/r/mritd/nginx-singlepage) |\n| [![mritd/nodebuild](https://github.com/mritd/autobuild/actions/workflows/nodebuild.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/nodebuild.yaml)                      | [https://hub.docker.com/r/mritd/nodebuild](https://hub.docker.com/r/mritd/nodebuild)               |\n| [![mritd/openjdk](https://github.com/mritd/autobuild/actions/workflows/openjdk.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/openjdk.yaml)                            | [https://hub.docker.com/r/mritd/openjdk8](https://hub.docker.com/r/mritd/openjdk8)                 |\n| [![mritd/s2h](https://github.com/mritd/autobuild/actions/workflows/s2h.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/s2h.yaml)                                        | [https://hub.docker.com/r/mritd/s2h](https://hub.docker.com/r/mritd/s2h)                           |\n| [![mritd/ssh](https://github.com/mritd/autobuild/actions/workflows/ssh.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/ssh.yaml)                                        | [https://hub.docker.com/r/mritd/ssh](https://hub.docker.com/r/mritd/ssh)                           |\n| [![mritd/derper](https://github.com/mritd/autobuild/actions/workflows/derper.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/derper.yaml)                               | [https://hub.docker.com/r/mritd/derper](https://hub.docker.com/r/mritd/derper)                     |\n| [![mritd/bandwagonmon](https://github.com/mritd/autobuild/actions/workflows/bandwagonmon.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/bandwagonmon.yaml)             | [https://hub.docker.com/r/mritd/bandwagonmon](https://hub.docker.com/r/mritd/bandwagonmon)         |\n| [![mritd/notibot](https://github.com/mritd/autobuild/actions/workflows/notibot.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/notibot.yaml)                            | [https://hub.docker.com/r/mritd/notibot](https://hub.docker.com/r/mritd/notibot)                   |\n| [![mritd/open-vm-tools](https://github.com/mritd/autobuild/actions/workflows/open-vm-tools.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/open-vm-tools.yaml)          | [https://hub.docker.com/r/mritd/open-vm-tools](https://hub.docker.com/r/mritd/open-vm-tools)       |\n| [![mritd/container-cli](https://github.com/mritd/autobuild/actions/workflows/container-cli.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/container-cli.yaml)          | [https://hub.docker.com/r/mritd/container-cli](https://hub.docker.com/r/mritd/container-cli)       |\n| [![mritd/dnsacme](https://github.com/mritd/autobuild/actions/workflows/dnsacme.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/dnsacme.yaml)                            | [https://hub.docker.com/r/mritd/dnsacme](https://hub.docker.com/r/mritd/dnsacme)                   |\n| [![mritd/aria2](https://github.com/mritd/autobuild/actions/workflows/aria2.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/aria2.yaml)                                  | [https://hub.docker.com/r/mritd/aria2](https://hub.docker.com/r/mritd/aria2)                       |\n| [![mritd/makeself](https://github.com/mritd/autobuild/actions/workflows/makeself.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/makeself.yaml)                         | [https://hub.docker.com/r/mritd/makeself](https://hub.docker.com/r/mritd/makeself)                 |\n| [![mritd/tuic-server](https://github.com/mritd/autobuild/actions/workflows/tuic-server.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/tuic-server.yaml)                | [https://hub.docker.com/r/mritd/tuic-server](https://hub.docker.com/r/mritd/tuic-server)           |\n| [![mritd/snell](https://github.com/mritd/autobuild/actions/workflows/snell.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/snell.yaml)                                  | [https://hub.docker.com/r/mritd/snell](https://hub.docker.com/r/mritd/snell)                       |\n| [![mritd/ci-runner](https://github.com/mritd/autobuild/actions/workflows/ci-runner.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/ci-runner.yaml)                      | [https://hub.docker.com/r/mritd/ci-runner](https://hub.docker.com/r/mritd/ci-runner)               |\n| [![mritd/tgid](https://github.com/mritd/autobuild/actions/workflows/tgid.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/tgid.yaml)                                     | [https://hub.docker.com/r/mritd/tgid](https://hub.docker.com/r/mritd/tgid)                         |\n\n\n## Why not use Dockerfile?\n\nIn the past few years, I have to admit that Dockerfile is great; but as the number of Dockerfile increases, I have to do a lot of repetitive work to solve some problems.\n\nFor example, \"unify the basic image version\"、\"fix compatibility issues for specific languages\"、\"cross compile for each platform\", etc...\n\nWell, I can write some \"magic scripts\" to be lazy; but this will cause the production-level Docker image to become unmaintainable, just like a messy network cable...\n\nNow, Earthly has solved this problem; I unified the specific language version、the operating system at compile time、the basic runtime environment、and some general fixes. Also use GitHub Action for reliable cross-compilation to generate multi-arch images. It all got better 🤪.\n\n\n## Directory Structure\n\n```sh\n.\n├── caddy                       # The directory name is the target image\n│   └── Earthfile\n├── openjdk\n│   ├── cgradle                 # If the build image needs some other files, they will also be saved in this directory\n│   ├── cmvn\n│   └── Earthfile               # Earthfile is a file similar to Dockerfile, it is modular, it is very convenient to reuse code\n│\n│\n├── udcs                        # udcs (user-defined commands) is a special directory where most common Earthfiles are stored\n│   ├── Earthfile               # udcs/Earthfile stores general commands that do not depend on system os and language\n│   ├── image                   # udcs/image stores the basic runtime or compile image of most programming languages\n│   ├── language                # udcs/language stores special commands for specific languages\n│   └── os                      # udcs/os stores special commands for specific system os\n│\n│\n├── .github\n│   └── workflows                   # The workflows directory stores job definitions for each docker image automated build\n│       ├── alpine.yaml\n│       ├── caddy.yaml\n│       ├── confluence.yaml\n│       ├── ddns.yaml\n│       ├── demo.yaml\n│       ├── idgen.yaml\n│       ├── jira.yaml\n│       ├── nginx-singlepage.yaml\n│       ├── nodebuild.yaml\n│       ├── openjdk.yaml\n│       ├── poetbot.yaml\n│       ├── s2h.yaml\n│       └── ssh.yaml\n└── LICENSE\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmritd%2Fautobuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmritd%2Fautobuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmritd%2Fautobuild/lists"}