Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mritd/autobuild
Earthly Auto Build Repo
https://github.com/mritd/autobuild
autobuild docker dockerfile earthfile earthly
Last synced: 23 days ago
JSON representation
Earthly Auto Build Repo
- Host: GitHub
- URL: https://github.com/mritd/autobuild
- Owner: mritd
- License: apache-2.0
- Created: 2021-08-06T04:43:40.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-26T03:08:14.000Z (4 months ago)
- Last Synced: 2024-07-26T16:52:58.872Z (4 months ago)
- Topics: autobuild, docker, dockerfile, earthfile, earthly
- Language: Earthly
- Homepage:
- Size: 1.31 MB
- Stars: 30
- Watchers: 3
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Earthly Auto Build Repo
> This repo contains the Earthfile of some useful images under the Docker Hub [`mritd`](https://hub.docker.com/u/mritd) user.
| Status | Docker Hub |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![mritd/poetbot](https://github.com/mritd/autobuild/actions/workflows/poetbot.yaml/badge.svg)](https://github.com/mritd/autobuild/actions/workflows/poetbot.yaml) | [https://hub.docker.com/r/mritd/poetbot](https://hub.docker.com/r/mritd/poetbot) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |
| [![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) |## Why not use Dockerfile?
In 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.
For example, "unify the basic image version"、"fix compatibility issues for specific languages"、"cross compile for each platform", etc...
Well, 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...
Now, 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 🤪.
## Directory Structure
```sh
.
├── caddy # The directory name is the target image
│ └── Earthfile
├── openjdk
│ ├── cgradle # If the build image needs some other files, they will also be saved in this directory
│ ├── cmvn
│ └── Earthfile # Earthfile is a file similar to Dockerfile, it is modular, it is very convenient to reuse code
│
│
├── udcs # udcs (user-defined commands) is a special directory where most common Earthfiles are stored
│ ├── Earthfile # udcs/Earthfile stores general commands that do not depend on system os and language
│ ├── image # udcs/image stores the basic runtime or compile image of most programming languages
│ ├── language # udcs/language stores special commands for specific languages
│ └── os # udcs/os stores special commands for specific system os
│
│
├── .github
│ └── workflows # The workflows directory stores job definitions for each docker image automated build
│ ├── alpine.yaml
│ ├── caddy.yaml
│ ├── confluence.yaml
│ ├── ddns.yaml
│ ├── demo.yaml
│ ├── idgen.yaml
│ ├── jira.yaml
│ ├── nginx-singlepage.yaml
│ ├── nodebuild.yaml
│ ├── openjdk.yaml
│ ├── poetbot.yaml
│ ├── s2h.yaml
│ └── ssh.yaml
└── LICENSE
```