diff --git a/.template-helpers/generate-tag-details.pl b/.template-helpers/generate-tag-details.pl new file mode 100755 index 000000000..63f163824 --- /dev/null +++ b/.template-helpers/generate-tag-details.pl @@ -0,0 +1,192 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use 5.010; +use open ':encoding(utf8)'; + +use Mojo::UserAgent; + +die 'no images specified' unless @ARGV; + +my $ua = Mojo::UserAgent->new->max_redirects(10); +$ua->transactor->name('Docker'); + +sub split_image_name { + my $image = shift; + if ($image =~ m{ + ^ + (?: ([^/:]+) / )? # optional namespace + ([^/:]+) # image name + (?: : ([^/:]+) )? # optional tag + $ + }x) { + my ($namespace, $name, $tag) = ( + $1 // 'library', # namespace + $2, # image name + $3 // 'latest', # tag + ); + return ("$namespace/$name", $tag); + } + die "unrecognized image name format in: $image"; +} + +sub get_token { + my $repo = shift; + state %tokens; + return $tokens{$repo} if $tokens{$repo}; + my $realmTx = $ua->get("https://registry-1.docker.io/v2/$repo/tags/list"); + my $auth = $realmTx->res->headers->www_authenticate; + die "unexpected WWW-Authenticate header: $auth" unless $auth =~ m{ ^ Bearer \s+ (\S.*) $ }x; + my $realm = $1; + my $url = Mojo::URL->new; + while ($realm =~ m{ + # key="val", + ([^=]+) + = + "([^"]+)" + ,? + }xg) { + my ($key, $val) = ($1, $2); + if ($key eq 'realm') { + $url->base(Mojo::URL->new($val)); + } else { + $url->query->append($key => $val); + } + } + $url = $url->to_abs; + my $tokenTx = $ua->get($url); + die "failed to fetch token for $repo" unless $tokenTx->success; + return $tokens{$repo} = $tokenTx->res->json->{token}; +} + +sub get_manifest { + my ($repo, $tag) = @_; + my $image = "$repo:$tag"; + state %manifests; + return $manifests{$image} if $manifests{$image}; + + my $token = get_token($repo); + my $authorizationHeader = { Authorization => "Bearer $token" }; + + my $manifestTx = $ua->get("https://registry-1.docker.io/v2/$repo/manifests/$tag" => $authorizationHeader); + die "failed to get manifest for $image" unless $manifestTx->success; + return $manifests{$image} = $manifestTx->res->json; +} + +sub get_blob_headers { + my ($repo, $blob) = @_; + my $key = $repo . '@' . $blob; + state %headers; + return $headers{$key} if $headers{$key}; + + my $token = get_token($repo); + my $authorizationHeader = { Authorization => "Bearer $token" }; + + my $headersTx = $ua->head("https://registry-1.docker.io/v2/$repo/blobs/$blob" => $authorizationHeader); + die "failed to get headers for $key" unless $headersTx->success; + return $headers{$key} = $headersTx->res->headers; +} + +sub get_layer_data { + my ($repo, $id, $blob, $v1) = @_; + $id //= $v1->{id}; + state %layers; + return $layers{$id} if $layers{$id}; + die "missing v1/blob data for layer $id" unless $blob and $v1; + my $data = { + map({ $_ => $v1->{$_} } qw(id created parent docker_version)), + container_command => $v1->{container_config}{Cmd}, + virtual_size => $v1->{Size}, + blob => $blob, + }; + my $blobHeaders = get_blob_headers($repo, $blob); + $data->{blob_content_length} = $blobHeaders->content_length; + $data->{blob_last_modified} = $blobHeaders->last_modified; + return $layers{$id} = $data; +} + +sub cmd_to_dockerfile { + my ($cmd) = @_; + if (scalar(@$cmd) == 3 && $cmd->[0] eq '/bin/sh' && $cmd->[1] eq '-c') { + $cmd = $cmd->[2]; + if ($cmd =~ s{^(#[(]nop[)] )}{}) { + return $cmd; + } + # prefix tabs and 4-space-indents with \ and a newline (for readability), but only if we don't already have any newlines + $cmd =~ s/ ( (?:\t|[ ]{4})+ ) /\\\n$1/xg unless $cmd =~ m!\n!; + return 'RUN ' . $cmd; + } + return 'RUN ' . Mojo::JSON::encode_json($cmd); +} + +my @humanSizeUnits = qw( B KB MB GB TB ); +my $humanSizeScale = 1000; +sub human_size { + my ($bytes) = @_; + my $unit = 0; + my $unitBytes = $bytes; + while (($unitBytes = int($bytes / ($humanSizeScale ** $unit))) > $humanSizeScale) { + last unless $humanSizeUnits[$unit + 1]; + ++$unit; + } + return sprintf '%.1f %s', $bytes / ($humanSizeScale ** $unit), $humanSizeUnits[$unit]; +} + +sub size { + my $text = human_size(@_); + $text .= " ($_[0] bytes)" unless $text =~ m! \s+ B $ !x; + return $text; +} + +sub date { + my $date = Mojo::Date->new(@_); + return $date->to_string; +} + +while (my $image = shift) { + print "\n"; + say '## `' . $image . '`'; + my ($repo, $tag) = split_image_name($image); + + my $manifest = get_manifest($repo, $tag); + my %parentChild; + my %totals = ( + virtual_size => 0, + blob_content_length => 0, + ); + for my $i (0 .. $#{ $manifest->{fsLayers} }) { + my $data = get_layer_data( + $repo, undef, + $manifest->{fsLayers}[$i]{blobSum}, + Mojo::JSON::decode_json($manifest->{history}[$i]{v1Compatibility}), + ); + $parentChild{$data->{parent} // ''} = $data->{id}; + $totals{$_} += $data->{$_} for keys %totals; + } + print "\n"; + say "-\t" . 'Total Virtual Size: ' . size($totals{virtual_size}); + say "-\t" . 'Total v2 Content-Length: ' . size($totals{blob_content_length}); + print "\n"; + say '### Layers (' . scalar(keys %parentChild) . ')'; + my $cur = $parentChild{''}; + while ($cur) { + print "\n"; + say '#### `' . $cur . '`'; + my $data = get_layer_data($repo, $cur); + if ($data->{container_command}) { + print "\n"; + say '```dockerfile'; + say cmd_to_dockerfile($data->{container_command}); + say '```'; + } + print "\n"; + say "-\t" . 'Created: ' . date($data->{created}) if $data->{created}; + say "-\t" . 'Parent Layer: `' . $data->{parent} . '`' if $data->{parent}; + say "-\t" . 'Docker Version: ' . $data->{docker_version} if $data->{docker_version}; + say "-\t" . 'Virtual Size: ' . size($data->{virtual_size}); + say "-\t" . 'v2 Blob: `' . $data->{blob} . '`'; + say "-\t" . 'v2 Content-Length: ' . size($data->{blob_content_length}); + say "-\t" . 'v2 Last-Modified: ' . date($data->{blob_last_modified}); + $cur = $parentChild{$cur}; + } +} diff --git a/.template-helpers/generate-tag-details.sh b/.template-helpers/generate-tag-details.sh deleted file mode 100755 index f00a00a38..000000000 --- a/.template-helpers/generate-tag-details.sh +++ /dev/null @@ -1,166 +0,0 @@ -#!/bin/bash -set -eo pipefail - -repo="$1" -if [ -z "$repo" ]; then - echo >&2 "usage: $0 repo" - echo >&2 " ie: $0 hylang" - exit 1 -fi - -lines="$(curl -fsSL 'https://raw.githubusercontent.com/docker-library/official-images/master/library/'"$repo" | grep -vE '^$|^#')" -if [ -z "$lines" ]; then - echo >&2 "Failed to read manifest file for $repo" - exit 1 -fi - -IFS=$'\n' -tags=( $(echo "$lines" | awk -F ': +' '{ print $1 }') ) -unset IFS - -tokenUrl="$(curl -sSLD- "https://registry-1.docker.io/v2/library/$repo/tags/list" -o /dev/null | tr -d '\r' | awk -F ': +' 'tolower($1) == "www-authenticate" && gsub(/^Bearer\s+realm="/, "", $2) { sub(/",/, "?", $2); gsub(/"/, "", $2); gsub(/,/, "\\&", $2); print $2 }')" -token="$(curl -fsSL "$tokenUrl" | tr -d '\r' | sed -r 's/^[{]|[}]$//g' | awk -v RS=',' -F '"' '$2 == "token" { print $4 }')" -authHeader="Authorization: Bearer $token" - -get_digest() { - local tag="$1" - curl -sSLD- "https://registry-1.docker.io/v2/library/$repo/manifests/$tag" --header "$authHeader" -o /dev/null | tr -d '\r' | awk -F ': +' 'tolower($1) == "docker-content-digest" { print $2 }' -} - -get_manifest() { - local tag="$1" - curl -sSL "https://registry-1.docker.io/v2/library/$repo/manifests/$tag" --header "$authHeader" | tr -d '\r' -} - -get_blob_headers() { - local blob="$1" - curl -sSL "https://registry-1.docker.io/v2/library/$repo/blobs/$blob" --header "$authHeader" --head | tr -d '\r' -} - -json_get_data() { - local json="$1"; shift - local data="$1"; shift - local strip="$1"; shift || strip='^"|"$' - echo "$json" | awk -F '\t' '$1 ~ /^'"$data"'$/ { gsub(/'"$strip"'/, "", $2); print $2 }' -} - -humanSizeUnits=( B KB MB GB TB ) -humanSizeScale=1 -human_size() { - local bytes="$1" - local unit=0 - local unitBytes="$1" - while unitBytes="$(echo "scale=0; $bytes / (1000 ^ $unit)" | bc -l)" && [ "$unitBytes" -gt 1000 ]; do - if [ ! "${humanSizeUnits[$(( unit + 1 ))]}" ]; then - break - fi - unit="$(( unit + 1 ))" - done - echo "$(echo "scale=$humanSizeScale; $bytes / (1000 ^ $unit)" | bc -l) ${humanSizeUnits[$unit]}" -} - -size() { - text="$(human_size "$1")" - if [[ "$text" != *' B' ]]; then - text+=" ($1 bytes)" - fi - echo "$text" -} - -pdate() { - TZ=America/Los_Angeles date --date="$1" --rfc-2822 -} - -jsonSh="$(curl -fsSL 'https://raw.githubusercontent.com/dominictarr/JSON.sh/ed3f9dd285ebd4183934adb54ea5a2fda6b25a98/JSON.sh')" - -echo "# Tags of \`$repo\`" - -# add a simple ToC -echo -for tag in "${tags[@]}"; do - # GitHub heading anchors are strange - href="${repo}:${tag}" - href="${href//./}" - href="${href//:/}" - href="${href,,}" - echo "- [\`$repo:$tag\`](#${href})" -done - -declare -A layerData=() - -for tag in "${tags[@]}"; do - echo - echo "## \`$repo:$tag\`" - digest="$(get_digest "$tag")" - if [ "$digest" ]; then - echo - echo '```console' - echo "$ docker pull $repo@$digest" - echo '```' - fi - manifest="$(get_manifest "$tag")" - if [ "$manifest" ]; then - parsedManifest="$(echo "$manifest" | bash <(echo "$jsonSh") -l)" - eval "declare -A layerBlobs=( $(echo "$parsedManifest" | awk -F '\t' 'gsub(/^\["fsLayers",/, "", $1) && gsub(/,"blobSum"\]$/, "", $1) { print "[" $1 "]=" $2 }') )" - eval "declare -A layerV1s=( $(echo "$parsedManifest" | awk -F '\t' 'gsub(/^\["history",/, "", $1) && gsub(/,"v1Compatibility"\]$/, "", $1) { print "[" $1 "]=" $2 }') )" - declare -A parentChild=() - declare -A totals=( - [Size]=0 - [content-length]=0 - ) - for i in "${!layerV1s[@]}"; do - layerV1="${layerV1s[$i]%'\n'}" # lol \n - parsedLayerV1="$(echo "$layerV1" | bash <(echo "$jsonSh"))" - layerId="$(json_get_data "$parsedLayerV1" '\["id"\]')" - if [ -z "${layerData[$layerId]}" ]; then - layerData["$layerId"]=1 - for field in created parent docker_version Size; do - layerData["${layerId}_${field}"]="$(json_get_data "$parsedLayerV1" '\["'"$field"'"\]')" - done - layerData["${layerId}_container_cmd"]="$(json_get_data "$parsedLayerV1" '\["container_config","Cmd"\]' '')" - layerData["${layerId}_blob"]="${layerBlobs[$i]}" - blobHeaders="$(get_blob_headers "${layerData["${layerId}_blob"]}")" - for header in content-length last-modified; do - layerData["${layerId}_${header}"]="$(echo "$blobHeaders" | awk -F ': +' 'tolower($1) == "'"$header"'" { print $2 }')" - done - fi - parentChild["${layerData[${layerId}_parent]:-none}"]="$layerId" - for field in Size content-length; do - totals["$field"]="$(echo "${totals[$field]} + ${layerData[${layerId}_${field}]}" | bc)" - done - done - echo - echo "- Total Virtual Size: $(size "${totals[Size]}")" - echo "- Total v2 Content-Length: $(size "${totals[content-length]}"); compressed" - if [ "${#parentChild[@]}" -gt 0 ]; then - echo - echo "### Layers (${#parentChild[@]})" - cur="${parentChild[none]}" - while [ "$cur" ]; do - echo - echo "#### \`$cur\`" - cmd="${layerData[${cur}_container_cmd]}" - if [ "$cmd" ]; then - cmd="${cmd//'\u0026'/'&'}" - cmd="${cmd//'\u003c'/'<'}" - cmd="${cmd//'\u003e'/'>'}" - echo - echo '```json' - echo "$cmd" - echo '```' - fi - echo - echo "- Created: $(pdate "${layerData[${cur}_created]}")" - if [ "${layerData[${cur}_parent]}" ]; then - echo "- Parent Layer: \`${layerData[${cur}_parent]}\`" - fi - echo "- Docker Version: ${layerData[${cur}_docker_version]}" - echo "- Virtual Size: $(size "${layerData[${cur}_Size]}")" - echo "- v2 Blob: \`${layerData[${cur}_blob]}\`" - echo "- v2 Content-Length: $(size "${layerData[${cur}_content-length]}"); compressed" - echo "- v2 Last-Modified: $(pdate "${layerData[${cur}_last-modified]}")" - cur="${parentChild[$cur]}" - done - fi - fi -done diff --git a/hello-world/tag-details.md b/hello-world/tag-details.md new file mode 100644 index 000000000..624f3b12f --- /dev/null +++ b/hello-world/tag-details.md @@ -0,0 +1,39 @@ + + +# Tags of `hello-world` + +- [`hello-world:latest`](#hello-worldlatest) + +## `hello-world:latest` + +- Total Virtual Size: 960.0 B +- Total v2 Content-Length: 633.0 B + +### Layers (2) + +#### `535020c3e8add9d6bb06e5ac15a261e73d9b213d62fb2c14d752b8e189b2b912` + +```dockerfile +COPY file:4abd3bff60458ca3b079d7b131ce26b2719055a030dfa96ff827da2b7c7038a7 in / +``` + +- Created: Thu, 06 Aug 2015 23:53:22 GMT +- Docker Version: 1.7.1 +- Virtual Size: 960.0 B +- v2 Blob: `sha256:03f4658f8b782e12230c1783426bd3bacce651ce582a4ffb6fbbfa2079428ecb` +- v2 Content-Length: 601.0 B +- v2 Last-Modified: Fri, 07 Aug 2015 00:38:43 GMT + +#### `af340544ed62de0680f441c71fa1a80cb084678fed42bae393e543faea3a572c` + +```dockerfile +CMD ["/hello"] +``` + +- Created: Thu, 06 Aug 2015 23:53:22 GMT +- Parent Layer: `535020c3e8add9d6bb06e5ac15a261e73d9b213d62fb2c14d752b8e189b2b912` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT diff --git a/hylang/tag-details.md b/hylang/tag-details.md new file mode 100644 index 000000000..a1deb4f9b --- /dev/null +++ b/hylang/tag-details.md @@ -0,0 +1,1248 @@ + + +# Tags of `hylang` + +- [`hylang:latest`](#hylanglatest) +- [`hylang:0`](#hylang0) +- [`hylang:0.11`](#hylang011) +- [`hylang:0.11.0`](#hylang0110) + +## `hylang:latest` + +- Total Virtual Size: 690.9 MB (690887026 bytes) +- Total v2 Content-Length: 265.2 MB (265166664 bytes) + +### Layers (17) + +#### `2c49f83e0b13f73bf3d276c9fe26ba9aa94d2a1614e866642b95cb0245d0cdab` + +```dockerfile +ADD file:b770303e11edaa0ad0d8f43f6db4fa26673923912b5d5f7cb748ba025e6c4d3b in / +``` + +- Created: Thu, 20 Aug 2015 20:17:59 GMT +- Docker Version: 1.7.1 +- Virtual Size: 125.2 MB (125174904 bytes) +- v2 Blob: `sha256:7ccc78f8af6db23a5013f7b90b5672b82d69dd2fb30d1e6736dba29209aceee7` +- v2 Content-Length: 51.4 MB (51368377 bytes) +- v2 Last-Modified: Thu, 20 Aug 2015 20:40:09 GMT + +#### `4a5e6db8c0693a16de88b7559ded7c1cb804018571b137e13abb1713ce6a71cf` + +```dockerfile +CMD ["/bin/bash"] +``` + +- Created: Thu, 20 Aug 2015 20:18:01 GMT +- Parent Layer: `2c49f83e0b13f73bf3d276c9fe26ba9aa94d2a1614e866642b95cb0245d0cdab` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `f972ade4c9d5f9863b782ee685c8ec80da9bdb8e43834919214dd68d501687f0` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + wget \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Thu, 20 Aug 2015 20:24:45 GMT +- Parent Layer: `4a5e6db8c0693a16de88b7559ded7c1cb804018571b137e13abb1713ce6a71cf` +- Docker Version: 1.7.1 +- Virtual Size: 44.4 MB (44355942 bytes) +- v2 Blob: `sha256:29f19d8b362b32c34e142a0959111d215d43805f3d4242bde1359770a5d69284` +- v2 Content-Length: 18.5 MB (18538913 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 22:15:11 GMT + +#### `a0b6d62d8b494ada2b9a303ccf398021b2ca2838234f8d5f735743be77ab2726` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + bzr \ + git \ + mercurial \ + openssh-client \ + subversion \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Thu, 20 Aug 2015 20:25:45 GMT +- Parent Layer: `f972ade4c9d5f9863b782ee685c8ec80da9bdb8e43834919214dd68d501687f0` +- Docker Version: 1.7.1 +- Virtual Size: 122.3 MB (122318537 bytes) +- v2 Blob: `sha256:a068cb6fd68bb10bf1f97beedee2837c2b2a52109dbbb59ea25462d661006e0d` +- v2 Content-Length: 42.3 MB (42340018 bytes) +- v2 Last-Modified: Thu, 20 Aug 2015 20:59:13 GMT + +#### `8f45ce3be01ef6cf47621675c4a75cfdb5b951fb495b9c72394038ac2097c975` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + autoconf \ + automake \ + bzip2 \ + file \ + g++ \ + gcc \ + imagemagick \ + libbz2-dev \ + libc6-dev \ + libcurl4-openssl-dev \ + libevent-dev \ + libffi-dev \ + libglib2.0-dev \ + libjpeg-dev \ + liblzma-dev \ + libmagickcore-dev \ + libmagickwand-dev \ + libmysqlclient-dev \ + libncurses-dev \ + libpng-dev \ + libpq-dev \ + libreadline-dev \ + libsqlite3-dev \ + libssl-dev \ + libtool \ + libwebp-dev \ + libxml2-dev \ + libxslt-dev \ + libyaml-dev \ + make \ + patch \ + xz-utils \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Mon, 24 Aug 2015 16:11:35 GMT +- Parent Layer: `a0b6d62d8b494ada2b9a303ccf398021b2ca2838234f8d5f735743be77ab2726` +- Docker Version: 1.7.1 +- Virtual Size: 313.7 MB (313666691 bytes) +- v2 Blob: `sha256:2ac01aa9d22a0c73405fe147734a6acf8929209620ca4a80fe8064449ab7d301` +- v2 Content-Length: 128.2 MB (128191020 bytes) +- v2 Last-Modified: Mon, 24 Aug 2015 16:55:37 GMT + +#### `1083021b835b0dadec581bfe5df60f68badcac3505882022874961469b57a86c` + +```dockerfile +RUN apt-get purge -y python.* +``` + +- Created: Mon, 24 Aug 2015 23:01:52 GMT +- Parent Layer: `8f45ce3be01ef6cf47621675c4a75cfdb5b951fb495b9c72394038ac2097c975` +- Docker Version: 1.7.1 +- Virtual Size: 968.6 KB (968646 bytes) +- v2 Blob: `sha256:d52aa7328be73990218ff7667d78082a9a133bcb6a0147d012619ef419e61dea` +- v2 Content-Length: 219.3 KB (219345 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 02:17:33 GMT + +#### `daf97737baa6dfb8c2a9aa0b1b29382ffa0f4e83963cd0d343f35880a85e819e` + +```dockerfile +ENV LANG=C.UTF-8 +``` + +- Created: Mon, 24 Aug 2015 23:01:53 GMT +- Parent Layer: `1083021b835b0dadec581bfe5df60f68badcac3505882022874961469b57a86c` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `d0db56467d6fa4177e047eccff20620dcbc1b078cc116b034844cc5d71f2ef3d` + +```dockerfile +RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 97FC712E4C024BBEA48A61ED3A5CA953F73C700D +``` + +- Created: Tue, 25 Aug 2015 00:08:45 GMT +- Parent Layer: `daf97737baa6dfb8c2a9aa0b1b29382ffa0f4e83963cd0d343f35880a85e819e` +- Docker Version: 1.7.1 +- Virtual Size: 12.6 KB (12606 bytes) +- v2 Blob: `sha256:0eff4dba2813619cde95312133f5a9d313114d427afceba2fa42d43855c82274` +- v2 Content-Length: 6.7 KB (6739 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:44 GMT + +#### `3d972d281ba642548b4d823ed9a7f682b7a948f198ebe63a0b4d15a72b56f5b3` + +```dockerfile +ENV PYTHON_VERSION=3.4.3 +``` + +- Created: Tue, 25 Aug 2015 00:08:46 GMT +- Parent Layer: `d0db56467d6fa4177e047eccff20620dcbc1b078cc116b034844cc5d71f2ef3d` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `11c3332417eaef0f1f72fa0a8b4c91fadbcaef6986f9d4ea29351ddfc8565867` + +```dockerfile +ENV PYTHON_PIP_VERSION=7.1.2 +``` + +- Created: Tue, 25 Aug 2015 00:08:46 GMT +- Parent Layer: `3d972d281ba642548b4d823ed9a7f682b7a948f198ebe63a0b4d15a72b56f5b3` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `57b905b0cff8c61e420002921bc22a8a2022b6d6fc70ad2a995e39859399d778` + +```dockerfile +RUN set -x \ + && mkdir -p /usr/src/python \ + && curl -SL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ + && curl -SL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ + && gpg --verify python.tar.xz.asc \ + && tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ + && rm python.tar.xz* \ + && cd /usr/src/python \ + && ./configure --enable-shared --enable-unicode=ucs4 \ + && make -j$(nproc) \ + && make install \ + && ldconfig \ + && pip3 install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION \ + && find /usr/local \ + \( -type d -a -name test -o -name tests \) \ + -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \ + -exec rm -rf '{}' + \ + && rm -rf /usr/src/python +``` + +- Created: Tue, 25 Aug 2015 00:12:02 GMT +- Parent Layer: `11c3332417eaef0f1f72fa0a8b4c91fadbcaef6986f9d4ea29351ddfc8565867` +- Docker Version: 1.7.1 +- Virtual Size: 78.3 MB (78277634 bytes) +- v2 Blob: `sha256:8342e2e9b0e9b25d841853678ffdb88a1ed6d98e06410300b72a6c72d13f3b7e` +- v2 Content-Length: 22.1 MB (22061417 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:37 GMT + +#### `8ca1a8623b9648c90fbdcf7c1cb48b7096ecb5615e31915f0d7c633d45130f22` + +```dockerfile +RUN cd /usr/local/bin \ + && ln -s easy_install-3.4 easy_install \ + && ln -s idle3 idle \ + && ln -s pydoc3 pydoc \ + && ln -s python3 python \ + && ln -s python-config3 python-config +``` + +- Created: Tue, 25 Aug 2015 00:12:05 GMT +- Parent Layer: `57b905b0cff8c61e420002921bc22a8a2022b6d6fc70ad2a995e39859399d778` +- Docker Version: 1.7.1 +- Virtual Size: 48.0 B +- v2 Blob: `sha256:aee2bb808b2392b0743842df644cb03594b3a34bf3020025c796e823814768f5` +- v2 Content-Length: 272.0 B +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:16 GMT + +#### `615ff4d35e321826d4fc0e7fcd67c5e1175f3db3b81ed222e53074161bc5ced0` + +```dockerfile +CMD ["python3"] +``` + +- Created: Tue, 25 Aug 2015 00:12:06 GMT +- Parent Layer: `8ca1a8623b9648c90fbdcf7c1cb48b7096ecb5615e31915f0d7c633d45130f22` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `957c00090d1aa9548a6cada8437dad11f2c446c166d0b15f82cf29a60255b022` + +```dockerfile +MAINTAINER Paul R. Tagliamonte +``` + +- Created: Wed, 26 Aug 2015 03:19:10 GMT +- Parent Layer: `615ff4d35e321826d4fc0e7fcd67c5e1175f3db3b81ed222e53074161bc5ced0` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `bf030dfcd019c70fc8b6472baabaffdad0396b52809c2297df4789c522e27540` + +```dockerfile +ADD dir:954f76c7f237c7e873eb4ea2eb4ca712396e2ddb2b6a9b4f7f369aaf4831ab0e in /opt/hylang/hy +``` + +- Created: Wed, 26 Aug 2015 03:19:11 GMT +- Parent Layer: `957c00090d1aa9548a6cada8437dad11f2c446c166d0b15f82cf29a60255b022` +- Docker Version: 1.7.1 +- Virtual Size: 748.7 KB (748714 bytes) +- v2 Blob: `sha256:882920b8f584d6489fd0bc3d8fd447da239267f68a9ad3358675a36db2296785` +- v2 Content-Length: 359.2 KB (359203 bytes) +- v2 Last-Modified: Wed, 26 Aug 2015 22:39:41 GMT + +#### `52da90e29440eb025e2258836b786281486cef006ff034ba91c4b41ef429d433` + +```dockerfile +RUN pip3 install -e /opt/hylang/hy +``` + +- Created: Wed, 26 Aug 2015 03:19:16 GMT +- Parent Layer: `bf030dfcd019c70fc8b6472baabaffdad0396b52809c2297df4789c522e27540` +- Docker Version: 1.7.1 +- Virtual Size: 5.4 MB (5363304 bytes) +- v2 Blob: `sha256:4633c7bd1cb4a412ffc78eaa9295fc8815e366a952e6c1219a2dc39aaaf02586` +- v2 Content-Length: 2.1 MB (2081136 bytes) +- v2 Last-Modified: Wed, 26 Aug 2015 22:39:38 GMT + +#### `599d9e646932f023dca41418741578db90eb98462a044e81348b2373ca184c29` + +```dockerfile +CMD ["hy"] +``` + +- Created: Wed, 26 Aug 2015 03:19:16 GMT +- Parent Layer: `52da90e29440eb025e2258836b786281486cef006ff034ba91c4b41ef429d433` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +## `hylang:0` + +- Total Virtual Size: 690.9 MB (690887026 bytes) +- Total v2 Content-Length: 265.2 MB (265166696 bytes) + +### Layers (17) + +#### `2c49f83e0b13f73bf3d276c9fe26ba9aa94d2a1614e866642b95cb0245d0cdab` + +```dockerfile +ADD file:b770303e11edaa0ad0d8f43f6db4fa26673923912b5d5f7cb748ba025e6c4d3b in / +``` + +- Created: Thu, 20 Aug 2015 20:17:59 GMT +- Docker Version: 1.7.1 +- Virtual Size: 125.2 MB (125174904 bytes) +- v2 Blob: `sha256:7ccc78f8af6db23a5013f7b90b5672b82d69dd2fb30d1e6736dba29209aceee7` +- v2 Content-Length: 51.4 MB (51368377 bytes) +- v2 Last-Modified: Thu, 20 Aug 2015 20:40:09 GMT + +#### `4a5e6db8c0693a16de88b7559ded7c1cb804018571b137e13abb1713ce6a71cf` + +```dockerfile +CMD ["/bin/bash"] +``` + +- Created: Thu, 20 Aug 2015 20:18:01 GMT +- Parent Layer: `2c49f83e0b13f73bf3d276c9fe26ba9aa94d2a1614e866642b95cb0245d0cdab` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `f972ade4c9d5f9863b782ee685c8ec80da9bdb8e43834919214dd68d501687f0` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + wget \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Thu, 20 Aug 2015 20:24:45 GMT +- Parent Layer: `4a5e6db8c0693a16de88b7559ded7c1cb804018571b137e13abb1713ce6a71cf` +- Docker Version: 1.7.1 +- Virtual Size: 44.4 MB (44355942 bytes) +- v2 Blob: `sha256:29f19d8b362b32c34e142a0959111d215d43805f3d4242bde1359770a5d69284` +- v2 Content-Length: 18.5 MB (18538913 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 22:15:11 GMT + +#### `a0b6d62d8b494ada2b9a303ccf398021b2ca2838234f8d5f735743be77ab2726` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + bzr \ + git \ + mercurial \ + openssh-client \ + subversion \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Thu, 20 Aug 2015 20:25:45 GMT +- Parent Layer: `f972ade4c9d5f9863b782ee685c8ec80da9bdb8e43834919214dd68d501687f0` +- Docker Version: 1.7.1 +- Virtual Size: 122.3 MB (122318537 bytes) +- v2 Blob: `sha256:a068cb6fd68bb10bf1f97beedee2837c2b2a52109dbbb59ea25462d661006e0d` +- v2 Content-Length: 42.3 MB (42340018 bytes) +- v2 Last-Modified: Thu, 20 Aug 2015 20:59:13 GMT + +#### `8f45ce3be01ef6cf47621675c4a75cfdb5b951fb495b9c72394038ac2097c975` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + autoconf \ + automake \ + bzip2 \ + file \ + g++ \ + gcc \ + imagemagick \ + libbz2-dev \ + libc6-dev \ + libcurl4-openssl-dev \ + libevent-dev \ + libffi-dev \ + libglib2.0-dev \ + libjpeg-dev \ + liblzma-dev \ + libmagickcore-dev \ + libmagickwand-dev \ + libmysqlclient-dev \ + libncurses-dev \ + libpng-dev \ + libpq-dev \ + libreadline-dev \ + libsqlite3-dev \ + libssl-dev \ + libtool \ + libwebp-dev \ + libxml2-dev \ + libxslt-dev \ + libyaml-dev \ + make \ + patch \ + xz-utils \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Mon, 24 Aug 2015 16:11:35 GMT +- Parent Layer: `a0b6d62d8b494ada2b9a303ccf398021b2ca2838234f8d5f735743be77ab2726` +- Docker Version: 1.7.1 +- Virtual Size: 313.7 MB (313666691 bytes) +- v2 Blob: `sha256:2ac01aa9d22a0c73405fe147734a6acf8929209620ca4a80fe8064449ab7d301` +- v2 Content-Length: 128.2 MB (128191020 bytes) +- v2 Last-Modified: Mon, 24 Aug 2015 16:55:37 GMT + +#### `1083021b835b0dadec581bfe5df60f68badcac3505882022874961469b57a86c` + +```dockerfile +RUN apt-get purge -y python.* +``` + +- Created: Mon, 24 Aug 2015 23:01:52 GMT +- Parent Layer: `8f45ce3be01ef6cf47621675c4a75cfdb5b951fb495b9c72394038ac2097c975` +- Docker Version: 1.7.1 +- Virtual Size: 968.6 KB (968646 bytes) +- v2 Blob: `sha256:d52aa7328be73990218ff7667d78082a9a133bcb6a0147d012619ef419e61dea` +- v2 Content-Length: 219.3 KB (219345 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 02:17:33 GMT + +#### `daf97737baa6dfb8c2a9aa0b1b29382ffa0f4e83963cd0d343f35880a85e819e` + +```dockerfile +ENV LANG=C.UTF-8 +``` + +- Created: Mon, 24 Aug 2015 23:01:53 GMT +- Parent Layer: `1083021b835b0dadec581bfe5df60f68badcac3505882022874961469b57a86c` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `d0db56467d6fa4177e047eccff20620dcbc1b078cc116b034844cc5d71f2ef3d` + +```dockerfile +RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 97FC712E4C024BBEA48A61ED3A5CA953F73C700D +``` + +- Created: Tue, 25 Aug 2015 00:08:45 GMT +- Parent Layer: `daf97737baa6dfb8c2a9aa0b1b29382ffa0f4e83963cd0d343f35880a85e819e` +- Docker Version: 1.7.1 +- Virtual Size: 12.6 KB (12606 bytes) +- v2 Blob: `sha256:0eff4dba2813619cde95312133f5a9d313114d427afceba2fa42d43855c82274` +- v2 Content-Length: 6.7 KB (6739 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:44 GMT + +#### `3d972d281ba642548b4d823ed9a7f682b7a948f198ebe63a0b4d15a72b56f5b3` + +```dockerfile +ENV PYTHON_VERSION=3.4.3 +``` + +- Created: Tue, 25 Aug 2015 00:08:46 GMT +- Parent Layer: `d0db56467d6fa4177e047eccff20620dcbc1b078cc116b034844cc5d71f2ef3d` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `11c3332417eaef0f1f72fa0a8b4c91fadbcaef6986f9d4ea29351ddfc8565867` + +```dockerfile +ENV PYTHON_PIP_VERSION=7.1.2 +``` + +- Created: Tue, 25 Aug 2015 00:08:46 GMT +- Parent Layer: `3d972d281ba642548b4d823ed9a7f682b7a948f198ebe63a0b4d15a72b56f5b3` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `57b905b0cff8c61e420002921bc22a8a2022b6d6fc70ad2a995e39859399d778` + +```dockerfile +RUN set -x \ + && mkdir -p /usr/src/python \ + && curl -SL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ + && curl -SL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ + && gpg --verify python.tar.xz.asc \ + && tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ + && rm python.tar.xz* \ + && cd /usr/src/python \ + && ./configure --enable-shared --enable-unicode=ucs4 \ + && make -j$(nproc) \ + && make install \ + && ldconfig \ + && pip3 install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION \ + && find /usr/local \ + \( -type d -a -name test -o -name tests \) \ + -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \ + -exec rm -rf '{}' + \ + && rm -rf /usr/src/python +``` + +- Created: Tue, 25 Aug 2015 00:12:02 GMT +- Parent Layer: `11c3332417eaef0f1f72fa0a8b4c91fadbcaef6986f9d4ea29351ddfc8565867` +- Docker Version: 1.7.1 +- Virtual Size: 78.3 MB (78277634 bytes) +- v2 Blob: `sha256:8342e2e9b0e9b25d841853678ffdb88a1ed6d98e06410300b72a6c72d13f3b7e` +- v2 Content-Length: 22.1 MB (22061417 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:37 GMT + +#### `8ca1a8623b9648c90fbdcf7c1cb48b7096ecb5615e31915f0d7c633d45130f22` + +```dockerfile +RUN cd /usr/local/bin \ + && ln -s easy_install-3.4 easy_install \ + && ln -s idle3 idle \ + && ln -s pydoc3 pydoc \ + && ln -s python3 python \ + && ln -s python-config3 python-config +``` + +- Created: Tue, 25 Aug 2015 00:12:05 GMT +- Parent Layer: `57b905b0cff8c61e420002921bc22a8a2022b6d6fc70ad2a995e39859399d778` +- Docker Version: 1.7.1 +- Virtual Size: 48.0 B +- v2 Blob: `sha256:aee2bb808b2392b0743842df644cb03594b3a34bf3020025c796e823814768f5` +- v2 Content-Length: 272.0 B +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:16 GMT + +#### `615ff4d35e321826d4fc0e7fcd67c5e1175f3db3b81ed222e53074161bc5ced0` + +```dockerfile +CMD ["python3"] +``` + +- Created: Tue, 25 Aug 2015 00:12:06 GMT +- Parent Layer: `8ca1a8623b9648c90fbdcf7c1cb48b7096ecb5615e31915f0d7c633d45130f22` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `957c00090d1aa9548a6cada8437dad11f2c446c166d0b15f82cf29a60255b022` + +```dockerfile +MAINTAINER Paul R. Tagliamonte +``` + +- Created: Wed, 26 Aug 2015 03:19:10 GMT +- Parent Layer: `615ff4d35e321826d4fc0e7fcd67c5e1175f3db3b81ed222e53074161bc5ced0` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `bf030dfcd019c70fc8b6472baabaffdad0396b52809c2297df4789c522e27540` + +```dockerfile +ADD dir:954f76c7f237c7e873eb4ea2eb4ca712396e2ddb2b6a9b4f7f369aaf4831ab0e in /opt/hylang/hy +``` + +- Created: Wed, 26 Aug 2015 03:19:11 GMT +- Parent Layer: `957c00090d1aa9548a6cada8437dad11f2c446c166d0b15f82cf29a60255b022` +- Docker Version: 1.7.1 +- Virtual Size: 748.7 KB (748714 bytes) +- v2 Blob: `sha256:882920b8f584d6489fd0bc3d8fd447da239267f68a9ad3358675a36db2296785` +- v2 Content-Length: 359.2 KB (359203 bytes) +- v2 Last-Modified: Wed, 26 Aug 2015 22:39:41 GMT + +#### `52da90e29440eb025e2258836b786281486cef006ff034ba91c4b41ef429d433` + +```dockerfile +RUN pip3 install -e /opt/hylang/hy +``` + +- Created: Wed, 26 Aug 2015 03:19:16 GMT +- Parent Layer: `bf030dfcd019c70fc8b6472baabaffdad0396b52809c2297df4789c522e27540` +- Docker Version: 1.7.1 +- Virtual Size: 5.4 MB (5363304 bytes) +- v2 Blob: `sha256:4633c7bd1cb4a412ffc78eaa9295fc8815e366a952e6c1219a2dc39aaaf02586` +- v2 Content-Length: 2.1 MB (2081136 bytes) +- v2 Last-Modified: Wed, 26 Aug 2015 22:39:38 GMT + +#### `599d9e646932f023dca41418741578db90eb98462a044e81348b2373ca184c29` + +```dockerfile +CMD ["hy"] +``` + +- Created: Wed, 26 Aug 2015 03:19:16 GMT +- Parent Layer: `52da90e29440eb025e2258836b786281486cef006ff034ba91c4b41ef429d433` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +## `hylang:0.11` + +- Total Virtual Size: 690.9 MB (690887026 bytes) +- Total v2 Content-Length: 265.2 MB (265166696 bytes) + +### Layers (17) + +#### `2c49f83e0b13f73bf3d276c9fe26ba9aa94d2a1614e866642b95cb0245d0cdab` + +```dockerfile +ADD file:b770303e11edaa0ad0d8f43f6db4fa26673923912b5d5f7cb748ba025e6c4d3b in / +``` + +- Created: Thu, 20 Aug 2015 20:17:59 GMT +- Docker Version: 1.7.1 +- Virtual Size: 125.2 MB (125174904 bytes) +- v2 Blob: `sha256:7ccc78f8af6db23a5013f7b90b5672b82d69dd2fb30d1e6736dba29209aceee7` +- v2 Content-Length: 51.4 MB (51368377 bytes) +- v2 Last-Modified: Thu, 20 Aug 2015 20:40:09 GMT + +#### `4a5e6db8c0693a16de88b7559ded7c1cb804018571b137e13abb1713ce6a71cf` + +```dockerfile +CMD ["/bin/bash"] +``` + +- Created: Thu, 20 Aug 2015 20:18:01 GMT +- Parent Layer: `2c49f83e0b13f73bf3d276c9fe26ba9aa94d2a1614e866642b95cb0245d0cdab` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `f972ade4c9d5f9863b782ee685c8ec80da9bdb8e43834919214dd68d501687f0` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + wget \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Thu, 20 Aug 2015 20:24:45 GMT +- Parent Layer: `4a5e6db8c0693a16de88b7559ded7c1cb804018571b137e13abb1713ce6a71cf` +- Docker Version: 1.7.1 +- Virtual Size: 44.4 MB (44355942 bytes) +- v2 Blob: `sha256:29f19d8b362b32c34e142a0959111d215d43805f3d4242bde1359770a5d69284` +- v2 Content-Length: 18.5 MB (18538913 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 22:15:11 GMT + +#### `a0b6d62d8b494ada2b9a303ccf398021b2ca2838234f8d5f735743be77ab2726` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + bzr \ + git \ + mercurial \ + openssh-client \ + subversion \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Thu, 20 Aug 2015 20:25:45 GMT +- Parent Layer: `f972ade4c9d5f9863b782ee685c8ec80da9bdb8e43834919214dd68d501687f0` +- Docker Version: 1.7.1 +- Virtual Size: 122.3 MB (122318537 bytes) +- v2 Blob: `sha256:a068cb6fd68bb10bf1f97beedee2837c2b2a52109dbbb59ea25462d661006e0d` +- v2 Content-Length: 42.3 MB (42340018 bytes) +- v2 Last-Modified: Thu, 20 Aug 2015 20:59:13 GMT + +#### `8f45ce3be01ef6cf47621675c4a75cfdb5b951fb495b9c72394038ac2097c975` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + autoconf \ + automake \ + bzip2 \ + file \ + g++ \ + gcc \ + imagemagick \ + libbz2-dev \ + libc6-dev \ + libcurl4-openssl-dev \ + libevent-dev \ + libffi-dev \ + libglib2.0-dev \ + libjpeg-dev \ + liblzma-dev \ + libmagickcore-dev \ + libmagickwand-dev \ + libmysqlclient-dev \ + libncurses-dev \ + libpng-dev \ + libpq-dev \ + libreadline-dev \ + libsqlite3-dev \ + libssl-dev \ + libtool \ + libwebp-dev \ + libxml2-dev \ + libxslt-dev \ + libyaml-dev \ + make \ + patch \ + xz-utils \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Mon, 24 Aug 2015 16:11:35 GMT +- Parent Layer: `a0b6d62d8b494ada2b9a303ccf398021b2ca2838234f8d5f735743be77ab2726` +- Docker Version: 1.7.1 +- Virtual Size: 313.7 MB (313666691 bytes) +- v2 Blob: `sha256:2ac01aa9d22a0c73405fe147734a6acf8929209620ca4a80fe8064449ab7d301` +- v2 Content-Length: 128.2 MB (128191020 bytes) +- v2 Last-Modified: Mon, 24 Aug 2015 16:55:37 GMT + +#### `1083021b835b0dadec581bfe5df60f68badcac3505882022874961469b57a86c` + +```dockerfile +RUN apt-get purge -y python.* +``` + +- Created: Mon, 24 Aug 2015 23:01:52 GMT +- Parent Layer: `8f45ce3be01ef6cf47621675c4a75cfdb5b951fb495b9c72394038ac2097c975` +- Docker Version: 1.7.1 +- Virtual Size: 968.6 KB (968646 bytes) +- v2 Blob: `sha256:d52aa7328be73990218ff7667d78082a9a133bcb6a0147d012619ef419e61dea` +- v2 Content-Length: 219.3 KB (219345 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 02:17:33 GMT + +#### `daf97737baa6dfb8c2a9aa0b1b29382ffa0f4e83963cd0d343f35880a85e819e` + +```dockerfile +ENV LANG=C.UTF-8 +``` + +- Created: Mon, 24 Aug 2015 23:01:53 GMT +- Parent Layer: `1083021b835b0dadec581bfe5df60f68badcac3505882022874961469b57a86c` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `d0db56467d6fa4177e047eccff20620dcbc1b078cc116b034844cc5d71f2ef3d` + +```dockerfile +RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 97FC712E4C024BBEA48A61ED3A5CA953F73C700D +``` + +- Created: Tue, 25 Aug 2015 00:08:45 GMT +- Parent Layer: `daf97737baa6dfb8c2a9aa0b1b29382ffa0f4e83963cd0d343f35880a85e819e` +- Docker Version: 1.7.1 +- Virtual Size: 12.6 KB (12606 bytes) +- v2 Blob: `sha256:0eff4dba2813619cde95312133f5a9d313114d427afceba2fa42d43855c82274` +- v2 Content-Length: 6.7 KB (6739 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:44 GMT + +#### `3d972d281ba642548b4d823ed9a7f682b7a948f198ebe63a0b4d15a72b56f5b3` + +```dockerfile +ENV PYTHON_VERSION=3.4.3 +``` + +- Created: Tue, 25 Aug 2015 00:08:46 GMT +- Parent Layer: `d0db56467d6fa4177e047eccff20620dcbc1b078cc116b034844cc5d71f2ef3d` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `11c3332417eaef0f1f72fa0a8b4c91fadbcaef6986f9d4ea29351ddfc8565867` + +```dockerfile +ENV PYTHON_PIP_VERSION=7.1.2 +``` + +- Created: Tue, 25 Aug 2015 00:08:46 GMT +- Parent Layer: `3d972d281ba642548b4d823ed9a7f682b7a948f198ebe63a0b4d15a72b56f5b3` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `57b905b0cff8c61e420002921bc22a8a2022b6d6fc70ad2a995e39859399d778` + +```dockerfile +RUN set -x \ + && mkdir -p /usr/src/python \ + && curl -SL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ + && curl -SL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ + && gpg --verify python.tar.xz.asc \ + && tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ + && rm python.tar.xz* \ + && cd /usr/src/python \ + && ./configure --enable-shared --enable-unicode=ucs4 \ + && make -j$(nproc) \ + && make install \ + && ldconfig \ + && pip3 install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION \ + && find /usr/local \ + \( -type d -a -name test -o -name tests \) \ + -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \ + -exec rm -rf '{}' + \ + && rm -rf /usr/src/python +``` + +- Created: Tue, 25 Aug 2015 00:12:02 GMT +- Parent Layer: `11c3332417eaef0f1f72fa0a8b4c91fadbcaef6986f9d4ea29351ddfc8565867` +- Docker Version: 1.7.1 +- Virtual Size: 78.3 MB (78277634 bytes) +- v2 Blob: `sha256:8342e2e9b0e9b25d841853678ffdb88a1ed6d98e06410300b72a6c72d13f3b7e` +- v2 Content-Length: 22.1 MB (22061417 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:37 GMT + +#### `8ca1a8623b9648c90fbdcf7c1cb48b7096ecb5615e31915f0d7c633d45130f22` + +```dockerfile +RUN cd /usr/local/bin \ + && ln -s easy_install-3.4 easy_install \ + && ln -s idle3 idle \ + && ln -s pydoc3 pydoc \ + && ln -s python3 python \ + && ln -s python-config3 python-config +``` + +- Created: Tue, 25 Aug 2015 00:12:05 GMT +- Parent Layer: `57b905b0cff8c61e420002921bc22a8a2022b6d6fc70ad2a995e39859399d778` +- Docker Version: 1.7.1 +- Virtual Size: 48.0 B +- v2 Blob: `sha256:aee2bb808b2392b0743842df644cb03594b3a34bf3020025c796e823814768f5` +- v2 Content-Length: 272.0 B +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:16 GMT + +#### `615ff4d35e321826d4fc0e7fcd67c5e1175f3db3b81ed222e53074161bc5ced0` + +```dockerfile +CMD ["python3"] +``` + +- Created: Tue, 25 Aug 2015 00:12:06 GMT +- Parent Layer: `8ca1a8623b9648c90fbdcf7c1cb48b7096ecb5615e31915f0d7c633d45130f22` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `957c00090d1aa9548a6cada8437dad11f2c446c166d0b15f82cf29a60255b022` + +```dockerfile +MAINTAINER Paul R. Tagliamonte +``` + +- Created: Wed, 26 Aug 2015 03:19:10 GMT +- Parent Layer: `615ff4d35e321826d4fc0e7fcd67c5e1175f3db3b81ed222e53074161bc5ced0` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `bf030dfcd019c70fc8b6472baabaffdad0396b52809c2297df4789c522e27540` + +```dockerfile +ADD dir:954f76c7f237c7e873eb4ea2eb4ca712396e2ddb2b6a9b4f7f369aaf4831ab0e in /opt/hylang/hy +``` + +- Created: Wed, 26 Aug 2015 03:19:11 GMT +- Parent Layer: `957c00090d1aa9548a6cada8437dad11f2c446c166d0b15f82cf29a60255b022` +- Docker Version: 1.7.1 +- Virtual Size: 748.7 KB (748714 bytes) +- v2 Blob: `sha256:882920b8f584d6489fd0bc3d8fd447da239267f68a9ad3358675a36db2296785` +- v2 Content-Length: 359.2 KB (359203 bytes) +- v2 Last-Modified: Wed, 26 Aug 2015 22:39:41 GMT + +#### `52da90e29440eb025e2258836b786281486cef006ff034ba91c4b41ef429d433` + +```dockerfile +RUN pip3 install -e /opt/hylang/hy +``` + +- Created: Wed, 26 Aug 2015 03:19:16 GMT +- Parent Layer: `bf030dfcd019c70fc8b6472baabaffdad0396b52809c2297df4789c522e27540` +- Docker Version: 1.7.1 +- Virtual Size: 5.4 MB (5363304 bytes) +- v2 Blob: `sha256:4633c7bd1cb4a412ffc78eaa9295fc8815e366a952e6c1219a2dc39aaaf02586` +- v2 Content-Length: 2.1 MB (2081136 bytes) +- v2 Last-Modified: Wed, 26 Aug 2015 22:39:38 GMT + +#### `599d9e646932f023dca41418741578db90eb98462a044e81348b2373ca184c29` + +```dockerfile +CMD ["hy"] +``` + +- Created: Wed, 26 Aug 2015 03:19:16 GMT +- Parent Layer: `52da90e29440eb025e2258836b786281486cef006ff034ba91c4b41ef429d433` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +## `hylang:0.11.0` + +- Total Virtual Size: 690.9 MB (690887026 bytes) +- Total v2 Content-Length: 265.2 MB (265166696 bytes) + +### Layers (17) + +#### `2c49f83e0b13f73bf3d276c9fe26ba9aa94d2a1614e866642b95cb0245d0cdab` + +```dockerfile +ADD file:b770303e11edaa0ad0d8f43f6db4fa26673923912b5d5f7cb748ba025e6c4d3b in / +``` + +- Created: Thu, 20 Aug 2015 20:17:59 GMT +- Docker Version: 1.7.1 +- Virtual Size: 125.2 MB (125174904 bytes) +- v2 Blob: `sha256:7ccc78f8af6db23a5013f7b90b5672b82d69dd2fb30d1e6736dba29209aceee7` +- v2 Content-Length: 51.4 MB (51368377 bytes) +- v2 Last-Modified: Thu, 20 Aug 2015 20:40:09 GMT + +#### `4a5e6db8c0693a16de88b7559ded7c1cb804018571b137e13abb1713ce6a71cf` + +```dockerfile +CMD ["/bin/bash"] +``` + +- Created: Thu, 20 Aug 2015 20:18:01 GMT +- Parent Layer: `2c49f83e0b13f73bf3d276c9fe26ba9aa94d2a1614e866642b95cb0245d0cdab` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `f972ade4c9d5f9863b782ee685c8ec80da9bdb8e43834919214dd68d501687f0` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + wget \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Thu, 20 Aug 2015 20:24:45 GMT +- Parent Layer: `4a5e6db8c0693a16de88b7559ded7c1cb804018571b137e13abb1713ce6a71cf` +- Docker Version: 1.7.1 +- Virtual Size: 44.4 MB (44355942 bytes) +- v2 Blob: `sha256:29f19d8b362b32c34e142a0959111d215d43805f3d4242bde1359770a5d69284` +- v2 Content-Length: 18.5 MB (18538913 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 22:15:11 GMT + +#### `a0b6d62d8b494ada2b9a303ccf398021b2ca2838234f8d5f735743be77ab2726` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + bzr \ + git \ + mercurial \ + openssh-client \ + subversion \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Thu, 20 Aug 2015 20:25:45 GMT +- Parent Layer: `f972ade4c9d5f9863b782ee685c8ec80da9bdb8e43834919214dd68d501687f0` +- Docker Version: 1.7.1 +- Virtual Size: 122.3 MB (122318537 bytes) +- v2 Blob: `sha256:a068cb6fd68bb10bf1f97beedee2837c2b2a52109dbbb59ea25462d661006e0d` +- v2 Content-Length: 42.3 MB (42340018 bytes) +- v2 Last-Modified: Thu, 20 Aug 2015 20:59:13 GMT + +#### `8f45ce3be01ef6cf47621675c4a75cfdb5b951fb495b9c72394038ac2097c975` + +```dockerfile +RUN apt-get update && apt-get install -y --no-install-recommends \ + autoconf \ + automake \ + bzip2 \ + file \ + g++ \ + gcc \ + imagemagick \ + libbz2-dev \ + libc6-dev \ + libcurl4-openssl-dev \ + libevent-dev \ + libffi-dev \ + libglib2.0-dev \ + libjpeg-dev \ + liblzma-dev \ + libmagickcore-dev \ + libmagickwand-dev \ + libmysqlclient-dev \ + libncurses-dev \ + libpng-dev \ + libpq-dev \ + libreadline-dev \ + libsqlite3-dev \ + libssl-dev \ + libtool \ + libwebp-dev \ + libxml2-dev \ + libxslt-dev \ + libyaml-dev \ + make \ + patch \ + xz-utils \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* +``` + +- Created: Mon, 24 Aug 2015 16:11:35 GMT +- Parent Layer: `a0b6d62d8b494ada2b9a303ccf398021b2ca2838234f8d5f735743be77ab2726` +- Docker Version: 1.7.1 +- Virtual Size: 313.7 MB (313666691 bytes) +- v2 Blob: `sha256:2ac01aa9d22a0c73405fe147734a6acf8929209620ca4a80fe8064449ab7d301` +- v2 Content-Length: 128.2 MB (128191020 bytes) +- v2 Last-Modified: Mon, 24 Aug 2015 16:55:37 GMT + +#### `1083021b835b0dadec581bfe5df60f68badcac3505882022874961469b57a86c` + +```dockerfile +RUN apt-get purge -y python.* +``` + +- Created: Mon, 24 Aug 2015 23:01:52 GMT +- Parent Layer: `8f45ce3be01ef6cf47621675c4a75cfdb5b951fb495b9c72394038ac2097c975` +- Docker Version: 1.7.1 +- Virtual Size: 968.6 KB (968646 bytes) +- v2 Blob: `sha256:d52aa7328be73990218ff7667d78082a9a133bcb6a0147d012619ef419e61dea` +- v2 Content-Length: 219.3 KB (219345 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 02:17:33 GMT + +#### `daf97737baa6dfb8c2a9aa0b1b29382ffa0f4e83963cd0d343f35880a85e819e` + +```dockerfile +ENV LANG=C.UTF-8 +``` + +- Created: Mon, 24 Aug 2015 23:01:53 GMT +- Parent Layer: `1083021b835b0dadec581bfe5df60f68badcac3505882022874961469b57a86c` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `d0db56467d6fa4177e047eccff20620dcbc1b078cc116b034844cc5d71f2ef3d` + +```dockerfile +RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 97FC712E4C024BBEA48A61ED3A5CA953F73C700D +``` + +- Created: Tue, 25 Aug 2015 00:08:45 GMT +- Parent Layer: `daf97737baa6dfb8c2a9aa0b1b29382ffa0f4e83963cd0d343f35880a85e819e` +- Docker Version: 1.7.1 +- Virtual Size: 12.6 KB (12606 bytes) +- v2 Blob: `sha256:0eff4dba2813619cde95312133f5a9d313114d427afceba2fa42d43855c82274` +- v2 Content-Length: 6.7 KB (6739 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:44 GMT + +#### `3d972d281ba642548b4d823ed9a7f682b7a948f198ebe63a0b4d15a72b56f5b3` + +```dockerfile +ENV PYTHON_VERSION=3.4.3 +``` + +- Created: Tue, 25 Aug 2015 00:08:46 GMT +- Parent Layer: `d0db56467d6fa4177e047eccff20620dcbc1b078cc116b034844cc5d71f2ef3d` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `11c3332417eaef0f1f72fa0a8b4c91fadbcaef6986f9d4ea29351ddfc8565867` + +```dockerfile +ENV PYTHON_PIP_VERSION=7.1.2 +``` + +- Created: Tue, 25 Aug 2015 00:08:46 GMT +- Parent Layer: `3d972d281ba642548b4d823ed9a7f682b7a948f198ebe63a0b4d15a72b56f5b3` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `57b905b0cff8c61e420002921bc22a8a2022b6d6fc70ad2a995e39859399d778` + +```dockerfile +RUN set -x \ + && mkdir -p /usr/src/python \ + && curl -SL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz" -o python.tar.xz \ + && curl -SL "https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tar.xz.asc" -o python.tar.xz.asc \ + && gpg --verify python.tar.xz.asc \ + && tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ + && rm python.tar.xz* \ + && cd /usr/src/python \ + && ./configure --enable-shared --enable-unicode=ucs4 \ + && make -j$(nproc) \ + && make install \ + && ldconfig \ + && pip3 install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION \ + && find /usr/local \ + \( -type d -a -name test -o -name tests \) \ + -o \( -type f -a -name '*.pyc' -o -name '*.pyo' \) \ + -exec rm -rf '{}' + \ + && rm -rf /usr/src/python +``` + +- Created: Tue, 25 Aug 2015 00:12:02 GMT +- Parent Layer: `11c3332417eaef0f1f72fa0a8b4c91fadbcaef6986f9d4ea29351ddfc8565867` +- Docker Version: 1.7.1 +- Virtual Size: 78.3 MB (78277634 bytes) +- v2 Blob: `sha256:8342e2e9b0e9b25d841853678ffdb88a1ed6d98e06410300b72a6c72d13f3b7e` +- v2 Content-Length: 22.1 MB (22061417 bytes) +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:37 GMT + +#### `8ca1a8623b9648c90fbdcf7c1cb48b7096ecb5615e31915f0d7c633d45130f22` + +```dockerfile +RUN cd /usr/local/bin \ + && ln -s easy_install-3.4 easy_install \ + && ln -s idle3 idle \ + && ln -s pydoc3 pydoc \ + && ln -s python3 python \ + && ln -s python-config3 python-config +``` + +- Created: Tue, 25 Aug 2015 00:12:05 GMT +- Parent Layer: `57b905b0cff8c61e420002921bc22a8a2022b6d6fc70ad2a995e39859399d778` +- Docker Version: 1.7.1 +- Virtual Size: 48.0 B +- v2 Blob: `sha256:aee2bb808b2392b0743842df644cb03594b3a34bf3020025c796e823814768f5` +- v2 Content-Length: 272.0 B +- v2 Last-Modified: Tue, 25 Aug 2015 03:02:16 GMT + +#### `615ff4d35e321826d4fc0e7fcd67c5e1175f3db3b81ed222e53074161bc5ced0` + +```dockerfile +CMD ["python3"] +``` + +- Created: Tue, 25 Aug 2015 00:12:06 GMT +- Parent Layer: `8ca1a8623b9648c90fbdcf7c1cb48b7096ecb5615e31915f0d7c633d45130f22` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `957c00090d1aa9548a6cada8437dad11f2c446c166d0b15f82cf29a60255b022` + +```dockerfile +MAINTAINER Paul R. Tagliamonte +``` + +- Created: Wed, 26 Aug 2015 03:19:10 GMT +- Parent Layer: `615ff4d35e321826d4fc0e7fcd67c5e1175f3db3b81ed222e53074161bc5ced0` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT + +#### `bf030dfcd019c70fc8b6472baabaffdad0396b52809c2297df4789c522e27540` + +```dockerfile +ADD dir:954f76c7f237c7e873eb4ea2eb4ca712396e2ddb2b6a9b4f7f369aaf4831ab0e in /opt/hylang/hy +``` + +- Created: Wed, 26 Aug 2015 03:19:11 GMT +- Parent Layer: `957c00090d1aa9548a6cada8437dad11f2c446c166d0b15f82cf29a60255b022` +- Docker Version: 1.7.1 +- Virtual Size: 748.7 KB (748714 bytes) +- v2 Blob: `sha256:882920b8f584d6489fd0bc3d8fd447da239267f68a9ad3358675a36db2296785` +- v2 Content-Length: 359.2 KB (359203 bytes) +- v2 Last-Modified: Wed, 26 Aug 2015 22:39:41 GMT + +#### `52da90e29440eb025e2258836b786281486cef006ff034ba91c4b41ef429d433` + +```dockerfile +RUN pip3 install -e /opt/hylang/hy +``` + +- Created: Wed, 26 Aug 2015 03:19:16 GMT +- Parent Layer: `bf030dfcd019c70fc8b6472baabaffdad0396b52809c2297df4789c522e27540` +- Docker Version: 1.7.1 +- Virtual Size: 5.4 MB (5363304 bytes) +- v2 Blob: `sha256:4633c7bd1cb4a412ffc78eaa9295fc8815e366a952e6c1219a2dc39aaaf02586` +- v2 Content-Length: 2.1 MB (2081136 bytes) +- v2 Last-Modified: Wed, 26 Aug 2015 22:39:38 GMT + +#### `599d9e646932f023dca41418741578db90eb98462a044e81348b2373ca184c29` + +```dockerfile +CMD ["hy"] +``` + +- Created: Wed, 26 Aug 2015 03:19:16 GMT +- Parent Layer: `52da90e29440eb025e2258836b786281486cef006ff034ba91c4b41ef429d433` +- Docker Version: 1.7.1 +- Virtual Size: 0.0 B +- v2 Blob: `sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4` +- v2 Content-Length: 32.0 B +- v2 Last-Modified: Fri, 27 Mar 2015 17:18:47 GMT diff --git a/update-tag-details.sh b/update-tag-details.sh index b0b62980a..70e4dab97 100755 --- a/update-tag-details.sh +++ b/update-tag-details.sh @@ -4,18 +4,37 @@ set -eo pipefail cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" helperDir='.template-helpers' +# going for "bashbrew: command not found" +bashbrew --help > /dev/null + +docker build -t docker-library-docs . + repos=( "$@" ) if [ ${#repos[@]} -eq 0 ]; then repos=( */ ) fi repos=( "${repos[@]%/}" ) +script="$helperDir/generate-tag-details.pl" for repo in "${repos[@]}"; do echo -n "$repo ... " { - echo "" + IFS=$'\n' + tags=( $(bashbrew list "$repo") ) + unset IFS + echo "" echo - "$helperDir/generate-tag-details.sh" "$repo" + echo "# Tags of \`$repo\`" + echo + # add a simple ToC + for tag in "${tags[@]}"; do + # GitHub heading anchors are strange + href="${tag//./}" + href="${href//:/}" + href="#${href,,}" + echo $'-\t[`'"$tag"'`]('"$href"')' + done + docker run -i --rm -v "$PWD":/wtf:ro -w /wtf --entrypoint "$script" docker-library-docs "${tags[@]}" } > "$repo/tag-details.md" echo 'done' done