A set of docker image build scripts using buildx bake
 
 
 
Go to file
David Kebler ca857a032a new: add core RUN step
refactored: Dockefile template
refactor: example and move src/ there a simple example
new: distros.csv holds table of valid distros, their images and install/update commands
refactor: various fixes and adjustment in response to above
refactor: help vastly improved and updated
2023-04-22 08:19:45 -07:00
Dockerfile.d new: add core RUN step 2023-04-22 08:19:45 -07:00
core new: add core RUN step 2023-04-22 08:19:45 -07:00
example new: add core RUN step 2023-04-22 08:19:45 -07:00
lib new: add core RUN step 2023-04-22 08:19:45 -07:00
test refactor: generate Dockerfile from a template 2023-04-14 21:27:40 -07:00
.dockerignore refactor: new BUIlD_SRC supported from multiple locations including environment 2023-03-25 11:27:22 -07:00
.gitignore refactor: generate Dockerfile from a template 2023-04-14 21:27:40 -07:00
build new: add core RUN step 2023-04-22 08:19:45 -07:00
distros.csv new: add core RUN step 2023-04-22 08:19:45 -07:00
docker-bake.hcl new: add core RUN step 2023-04-22 08:19:45 -07:00
install refactor: generate Dockerfile from a template 2023-04-14 21:27:40 -07:00
readme.md refactor: generate Dockerfile from a template 2023-04-14 21:27:40 -07:00

readme.md

UCI Docker Image Builder

Easily build docker images for local use and publishing without messing around with a Dockerfile. Just some knowledge of BASH scripting is needed.

The "guts" of this repo is a single BASH shell script plus associated library to facilitate building docker linux images using any of four of these distros (arch,alpine,debian,ubuntu) and either architecture (amd64/arm64)

About

Prequisites

You need docker daemon installed with some other installation particulars in order to build images

The Dockerfile is assembled at build time is essentially two RUN commands. One to install packages (you specify) via a distro's package manager and then one to run a BASH init script that you write with specifics of initializing the image with whatever software the image is tasked to do. You specify those by setting a BUILD_SRC build source directory. This repo comes with a very basic build source which can handle any of the four distros mentioned. To build something more complicated you need to create your or src/ directory (see docs) or use one already developed (e.g. uci-docker-caddy repo)

Baked into the initilization RUN is an entrypoint script that makes interacting with the image/container easy and also to launch your "custom" app within th container.

The build makes user of docker's "buildx bake" commands and a docker-bake.hcl file to make local images

The default build is simply a basic alpine image saved locally to alpine:lastest.

To run the ./build script from other repos install it using the install script './install

The repo also supports (with scripts) pushing to alternate private repositories packages (like a self hosted gitea or github)

One can make images in one of two ways.

  1. edit the /src directory on this master branch (or a better a branch)
  2. Use the installer script (./install) to link the build script into your system path. THen you can develop a BUILD_SRC src/ directory anywhere and call the build script from there

It is recommended to do the later.