• Stars
    star
    5,045
  • Rank 8,256 (Top 0.2 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 10 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

Documentation for Docker Official Images in docker-library

What is this?

This repository contains the image documentation for each of the Docker Official Images. See docker-library/official-images for more information about the program in general.

All Markdown files here are run through tianon's fork of markdownfmt, and verified as formatted correctly via GitHub Actions.

  • GitHub CI status badge
  • library update.sh status badge
    • amd64 update.sh status badge
    • arm32v5 update.sh status badge
    • arm32v6 update.sh status badge
    • arm32v7 update.sh status badge
    • arm64v8 update.sh status badge
    • i386 update.sh status badge
    • ppc64le update.sh status badge
    • s390x update.sh status badge
    • windows-amd64 update.sh status badge

Table of Contents

  1. What is this?
    1. Table of Contents
  2. How do I update an image's docs
  3. How do I add a new image's docs
  4. Files related to an image's docs
    1. folder <image name>
    2. README.md
    3. content.md
    4. get-help.md
    5. github-repo
    6. license.md
    7. logo.png
    8. maintainer.md
    9. README-short.txt
    10. stack.yml
  5. Files for main Docs repo
    1. update.sh
    2. markdownfmt.sh and ymlfmt.sh
    3. .template-helpers/generate-dockerfile-links-partial.sh
    4. .template-helpers/
  6. Scripts unrelated to templates
    1. generate-repo-stub-readme.sh
    2. push.pl and push.sh
  7. Issues and Contributing

How do I update an image's docs

Edit the content.md for an image; not the README.md as it's auto-generated from the contents of the other files in that repo. To see the changes to the README.md, run ./update.sh myimage from the repo root, but do not add the README.md changes to your pull request. See also markdownfmt.sh point below.

After opening your Pull Request the changes will be checked by an automated markdownfmt.sh before it can be merged. A common issue is incorrect spacing such as with two lines missing an empty line between them (double-spaced).

How do I add a new image's docs

  • Create a folder for my image: mkdir myimage
  • Create a README-short.txt (required, 100 char max)
  • Create a content.md (required)
  • Create a license.md (required)
  • Create a maintainer.md (required)
  • Create a github-repo (required)
  • Add a logo.png (recommended)

Optionally:

  • Run ./markdownfmt.sh -l myimage to list any files that are non-compliant to tianon/markdownfmt.
    Any files in the list will result in a failed build during continuous integration.
    • run ./markdownfmt.sh -d myimage to see a diff of changes required to pass.
  • Run ./update.sh myimage to generate myimage/README.md for manual review of the generated copy.
    Note: do not actually commit the README.md file; it is automatically generated/committed before being uploaded to Docker Hub.

Files related to an image's docs

folder <image name>

This is where all the partial (e.g. content.md) and generated files (e.g. README.md) for a given image reside, (e.g. golang/). It must match the name of the image used in docker-library/official-images.

README.md

This file is generated using update.sh. Do not commit or edit this file; it is regenerated periodically by a bot.

content.md

This file contains the main content of your image's long description. The basic parts you should have are a "What Is" section and a "How To" section. The following is a basic layout:

# What is XYZ?

// about what the contained software is

%%LOGO%%

# How to use this image

// descriptions and examples of common use cases for the image
// make use of subsections as necessary

get-help.md

This file is an optional override of the default get-help.md. This is the content of the "Where to get help" part of the "Quick reference" at the top of the generated README. We recommend linking to the best places for community support like forums, chat rooms, or mailing lists.

github-repo

This file should contain the URL to the GitHub repository for the Dockerfiles that become the images. The file should be in a single line ending in a newline with no extraneous whitespace. Only one GitHub repo per image repository is supported. It is used in generating links. Here is an example for golang:

https://github.com/docker-library/golang

license.md

This file should contain a link to the license for the main software in the image. Here is an example for golang:

View [license information](http://golang.org/LICENSE) for the software contained in this image.

logo.png

Logo for the contained software. While there are not hard rules on formatting, most existing logos are square or landscape and stay within a few hundred pixels of width. Alternatively, a logo.svg can be used instead, but only one logo file will apply. To use it within content.md, put %%LOGO%% as shown above in the basic content.md layout.

The image is automatically scaled to a 120 pixel square for the top of the Docker Hub page and Hub search results.

maintainer.md

This file should contain a link to the maintainers of the Dockerfile.

README-short.txt

This is the short description for the Docker Hub, limited to 100 characters in a single line.

Go (golang) is a general purpose, higher-level, imperative programming language.

stack.yml

This optional file contains a small, working Compose file for Docker Swarm showing off how to use the image. To use the stack.yml, add %%STACK%% to the content.md and this will embed the YAML along with a link to directly try it in Play with Docker.

The file must work via docker stack deploy since that is how Play with Docker will launch it, but it is helpful for users to try locally if it works for docker-compose as well. Other official images may be referenced within the YAML to demonstrate the functionality of the image, but no images external to the Docker Official Images program may be referenced.

Files for main Docs repo

update.sh

This is the main script used to generate the README.md files for each image. The generated file is committed along with the files used to generate it. Accepted arguments are which image(s) you want to update or no arguments to update all of them.

This script assumes bashbrew is in your PATH (for scraping relevant tag information from the library manifest file for each repository).

markdownfmt.sh and ymlfmt.sh

These two scripts are for verifying the formatting of Markdown (.md) and YAML (.yml) files, respectively. markdownfmt.sh uses the tianon/markdownfmt image and ymlfmt.sh uses the tianon/ymlfmt image.

.template-helpers/generate-dockerfile-links-partial.sh

This script is used by update.sh to create the "Supported tags and respective Dockerfile links" section of each generated README.md from the information in the official-images library/ manifests.

.template-helpers/

The scripts and Markdown files in here are used in building an image's README.md file in combination with its individual files.

Scripts unrelated to templates

generate-repo-stub-readme.sh

This is used to generate a simple README.md to put in the image's repo. We use this in Git repositories within https://github.com/docker-library to simplify our maintenance, but it is not required for anyone else. The only argument is the name of the image (or repo), like golang and it then outputs the readme to standard out.

push.pl and push.sh

These are used by us to push the actual content of the READMEs to the Docker Hub as special access is required to modify the Hub description contents. The Dockerfile is used to create a suitable environment for push.pl.

Issues and Contributing

If you would like to make a new Official Image, be sure to follow the guidelines.

Feel free to make a pull request for fixes and improvements to current documentation. For questions or problems on this repo come talk to us via the #docker-library IRC channel on Libera.Chat or open up an issue.

More Repositories

1

official-images

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

php

Docker Official Image packaging for PHP
Shell
3,796
star
3

python

Docker Official Image packaging for Python
Dockerfile
2,526
star
4

mysql

Docker Official Image packaging for MySQL Community Server
Shell
2,465
star
5

postgres

Docker Official Image packaging for Postgres
Shell
2,155
star
6

wordpress

Docker Official Image packaging for WordPress
Shell
1,765
star
7

golang

Docker Official Image packaging for golang
Shell
1,471
star
8

openjdk

Docker Official Image packaging for EA builds of OpenJDK from Oracle
Shell
1,142
star
9

docker

Docker Official Image packaging for Docker
Shell
1,120
star
10

mongo

Docker Official Image packaging for MongoDB
Shell
1,025
star
11

rabbitmq

Docker Official Image packaging for RabbitMQ
Dockerfile
779
star
12

ghost

Docker Official Image packaging for Ghost
Dockerfile
719
star
13

healthcheck

https://github.com/docker/docker/issues/21142 prototypes
Shell
660
star
14

tomcat

Docker Official Image packaging for Apache Tomcat
Dockerfile
619
star
15

ruby

Docker Official Image packaging for Ruby
Shell
577
star
16

repo-info

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

hello-world

Shell
511
star
18

elasticsearch

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

buildpack-deps

Shell
442
star
20

busybox

Docker Official Image packaging for Busybox
Dockerfile
388
star
21

haproxy

Docker Official Image packaging for HAProxy
Shell
348
star
22

httpd

Docker Official Image packaging for Apache HTTP Server
Dockerfile
309
star
23

drupal

Docker Official Image packaging for Drupal
Shell
275
star
24

cassandra

Docker Official Image packaging for Cassandra
Shell
262
star
25

redmine

Docker Official Image packaging for Redmine
Shell
207
star
26

gcc

Docker Official Image packaging for gcc
Shell
156
star
27

rails

Docker Official Image packaging for Ruby on Rails
Shell
143
star
28

memcached

Docker Official Image packaging for memcached
Shell
130
star
29

django

Docker Official Image packaging for django
Shell
129
star
30

bashbrew

Canonical build tool for the official images
Go
119
star
31

faq

Frequently Asked Questions
116
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

oi-janky-groovy

Jenkins Pipeline and Job DSL scripts for Official Images Jenkins jobs
Groovy
104
star
35

owncloud

Docker Official Image packaging for ownCloud
Dockerfile
102
star
36

julia

Docker Official Image packaging for julia
Shell
89
star
37

pypy

Docker Official Image packaging for pypy
Dockerfile
69
star
38

dockerfile-validator

An experimental attempt to catch simple Dockerfile mistakes
Shell
56
star
39

percona

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

celery

Docker Official Image packaging for Celery
Shell
30
star
41

go-dockerlibrary

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

perl-bashbrew

Perl-based support libraries/tools for the Bashbrew official-images tool
Perl
9
star
43

meta-scripts

Scripts to generate metadata (source IDs, build IDs)
Go
6
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

https://github.com/docker-library/meta-scripts
2
star