Skip to content

mritd/autobuild

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

395 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Earthly Auto Build Repo

This repo contains the Earthfile of some useful images under the Docker Hub mritd user.

Status Docker Hub
mritd/alpine https://hub.docker.com/r/mritd/alpine
mritd/caddy https://hub.docker.com/r/mritd/caddy
mritd/confluence https://hub.docker.com/r/mritd/confluence
mritd/ddns https://hub.docker.com/r/mritd/ddns
mritd/demo https://hub.docker.com/r/mritd/demo
mritd/derper https://hub.docker.com/r/mritd/derper
mritd/idgen https://hub.docker.com/r/mritd/idgen
mritd/jira https://hub.docker.com/r/mritd/jira
mritd/nginx-singlepage https://hub.docker.com/r/mritd/nginx-singlepage
mritd/nodebuild https://hub.docker.com/r/mritd/nodebuild
mritd/openjdk https://hub.docker.com/r/mritd/openjdk8
mritd/s2h https://hub.docker.com/r/mritd/s2h
mritd/ssh https://hub.docker.com/r/mritd/ssh
mritd/derper https://hub.docker.com/r/mritd/derper
mritd/bandwagonmon https://hub.docker.com/r/mritd/bandwagonmon
mritd/notibot https://hub.docker.com/r/mritd/notibot
mritd/open-vm-tools https://hub.docker.com/r/mritd/open-vm-tools
mritd/container-cli https://hub.docker.com/r/mritd/container-cli
mritd/dnsacme https://hub.docker.com/r/mritd/dnsacme
mritd/aria2 https://hub.docker.com/r/mritd/aria2
mritd/makeself https://hub.docker.com/r/mritd/makeself
mritd/tuic-server https://hub.docker.com/r/mritd/tuic-server
mritd/snell https://hub.docker.com/r/mritd/snell
mritd/ci-runner https://hub.docker.com/r/mritd/ci-runner
mritd/tgid https://hub.docker.com/r/mritd/tgid

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

.
β”œβ”€β”€ 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

About

Earthly Auto Build Repo

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published