• Stars
    star
    116
  • Rank 294,433 (Top 6 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created almost 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Canonical build tool for the official images

Bashbrew (bashbrew)

Jenkins Build Status GitHub CI

$ bashbrew --help
NAME:
   bashbrew - canonical build tool for the official images

USAGE:
   bashbrew [global options] command [command options] [arguments...]

VERSION:
   v0.1.0

COMMANDS:
     list, ls    list repo:tag combinations for a given repo
     build       build (and tag) repo:tag combinations for a given repo
     tag         tag repo:tag into a namespace (especially for pushing)
     push        push namespace/repo:tag (see also "tag")
     put-shared  update shared tags in the registry (and multi-architecture tags)
     help, h     Shows a list of commands or help for one command
   plumbing:
     children, offspring, descendants, progeny  print the repos built FROM a given repo or repo:tag
     parents, ancestors, progenitors            print the repos this repo or repo:tag is FROM
     cat                                        print manifest contents for repo or repo:tag
     from                                       print FROM for repo:tag

GLOBAL OPTIONS:
   --debug                  enable more output (esp. all "docker build" output instead of only output on failure) [$BASHBREW_DEBUG]
   --no-sort                do not apply any sorting, even via --build-order
   --arch value             the current platform architecture (default: "amd64") [$BASHBREW_ARCH]
   --namespace value        a repo namespace to act upon/in [$BASHBREW_NAMESPACE]
   --constraint value       build constraints (see Constraints in Manifest2822Entry) [$BASHBREW_CONSTRAINTS]
   --exclusive-constraints  skip entries which do not have Constraints
   --arch-namespace value   architecture to push namespace mappings for creating indexes/manifest lists ("arch=namespace" ala "s390x=tianons390x") [$BASHBREW_ARCH_NAMESPACES]
   --config value           where default "flags" configuration can be overridden more persistently (default: "/home/tianon/.config/bashbrew") [$BASHBREW_CONFIG]
   --library value          where the bodies are buried (default: "/home/tianon/docker/official-images/library") [$BASHBREW_LIBRARY]
   --cache value            where the git wizardry is stashed (default: "/home/tianon/.cache/bashbrew") [$BASHBREW_CACHE]
   --help, -h, -?           show help
   --version, -v            print the version

Installing

Pre-built binaries are available to download from Jenkins (for all supported architectures).

(For building bashbrew yourself, it's a pretty standard Go application.)

Usage

Docker version 1.10 or above is required for use of Bashbrew.

In general, bashbrew build some-repo or bashbrew build ./some-file should be sufficient for using the tool at a surface level, especially for testing. For more complex usage, please see the built-in help (bashbrew --help, bashbrew build --help, etc).

Configuration

The default "flags" configuration is in ~/.config/bashbrew/flags, but the base path can be overridden with --config or BASHBREW_CONFIG (technically, the full path to the default flags configuration file is ${BASHBREW_CONFIG:-${XDG_CONFIG_HOME:-$HOME/.config}/bashbrew}/flags).

To set a default namespace for specific commands only:

Commands: tag, push
Namespace: officialstaging

To set a default namespace for all commands:

Namespace: jsmith

A more complex example:

# comments are allowed anywhere (and are ignored)
Library: /mnt/docker/official-images/library
Cache: /mnt/docker/bashbrew-cache
Constraints: aufs, docker-1.9, tianon
ExclusiveConstraints: true

# namespace just "tag" and "push" (not "build")
Commands: tag, push
Namespace: tianon

Commands: list
ApplyConstraints: true

Commands: tag
Debug: true

In this example, bashbrew tag will get both Namespace and Debug applied (options are additive).

More Repositories

1

official-images

Primary source of truth for the Docker "Official Images" program
Shell
6,185
star
2

docs

Documentation for Docker Official Images in docker-library
Shell
4,902
star
3

php

Docker Official Image packaging for PHP
Shell
3,673
star
4

python

Docker Official Image packaging for Python
Shell
2,427
star
5

mysql

Docker Official Image packaging for MySQL Community Server
Shell
2,392
star
6

postgres

Docker Official Image packaging for Postgres
Shell
2,058
star
7

wordpress

Docker Official Image packaging for WordPress
Shell
1,673
star
8

golang

Docker Official Image packaging for golang
Shell
1,424
star
9

openjdk

Docker Official Image packaging for EA builds of OpenJDK from Oracle
Shell
1,129
star
10

redis

Docker Official Image packaging for Redis
Shell
1,089
star
11

docker

Docker Official Image packaging for Docker
Shell
1,007
star
12

mongo

Docker Official Image packaging for MongoDB
Shell
997
star
13

rabbitmq

Docker Official Image packaging for RabbitMQ
Dockerfile
754
star
14

ghost

Docker Official Image packaging for Ghost
Dockerfile
677
star
15

healthcheck

https://github.com/docker/docker/issues/21142 prototypes
Shell
637
star
16

tomcat

Docker Official Image packaging for Apache Tomcat
Dockerfile
611
star
17

ruby

Docker Official Image packaging for Ruby
Shell
554
star
18

repo-info

Extended information (especially license and layer details) about the published Official Images
Perl
516
star
19

hello-world

Shell
489
star
20

elasticsearch

DEPRECATED; https://github.com/docker-library/official-images/pull/15808
Shell
486
star
21

buildpack-deps

Shell
430
star
22

busybox

Docker Official Image packaging for Busybox
Dockerfile
362
star
23

haproxy

Docker Official Image packaging for HAProxy
Shell
338
star
24

httpd

Docker Official Image packaging for Apache HTTP Server
Dockerfile
295
star
25

drupal

Docker Official Image packaging for Drupal
Shell
267
star
26

cassandra

Docker Official Image packaging for Cassandra
Shell
262
star
27

redmine

Docker Official Image packaging for Redmine
Shell
195
star
28

gcc

Docker Official Image packaging for gcc
Shell
153
star
29

rails

Docker Official Image packaging for Ruby on Rails
Shell
142
star
30

django

Docker Official Image packaging for django
Shell
129
star
31

memcached

Docker Official Image packaging for memcached
Shell
125
star
32

logstash

DEPRECATED; https://github.com/docker-library/official-images/pull/15808
Shell
107
star
33

kibana

DEPRECATED; https://github.com/docker-library/official-images/pull/15808
Shell
106
star
34

faq

Frequently Asked Questions
103
star
35

owncloud

Docker Official Image packaging for ownCloud
Dockerfile
103
star
36

oi-janky-groovy

Jenkins Pipeline and Job DSL scripts for Official Images Jenkins jobs
Groovy
103
star
37

julia

Docker Official Image packaging for julia
Shell
86
star
38

pypy

Docker Official Image packaging for pypy
Dockerfile
67
star
39

dockerfile-validator

An experimental attempt to catch simple Dockerfile mistakes
Shell
54
star
40

percona

DEPRECATED Docker Official Image packaging for Percona Server, new repo:
Shell
51
star
41

celery

Docker Official Image packaging for Celery
Shell
30
star
42

go-dockerlibrary

DEPRECATED: this repository has become part of https://github.com/docker-library/bashbrew!
Go
20
star
43

perl-bashbrew

Perl-based support libraries/tools for the Bashbrew official-images tool
Perl
8
star
44

commit-warehouse

Obsolete via https://github.com/docker-library/bashbrew/pull/4 + https://github.com/docker-library/bashbrew/pull/12!
Shell
4
star
45

meta-scripts

Scripts to generate metadata (source IDs, build IDs)
Go
2
star