mirror of
https://github.com/bitnami/minideb.git
synced 2026-06-04 10:13:55 +08:00
First go at minideb.
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
build
|
||||||
|
namibase/nami-linux-x64.tar.gz
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
minideb
|
||||||
|
=======
|
||||||
|
|
||||||
|
A small container image with apt available.
|
||||||
|
|
||||||
|
We want to have the smallest container image possible with
|
||||||
|
apt available. Small images are great, but the power of
|
||||||
|
apt is hard to live without.
|
||||||
|
|
||||||
|
These images are Debian-based, but they are not Debian, as
|
||||||
|
they remove some `Essential` packages that are not needed in
|
||||||
|
most containers (e.g. init). This does mean that while apt
|
||||||
|
is available, with the whole Debian archive, some packages
|
||||||
|
will not work correctly without also installing a missing
|
||||||
|
`Essential` package.
|
||||||
|
|
||||||
|
These images also include an `install_packages` command
|
||||||
|
that you can use instead of apt. This does two things:
|
||||||
|
|
||||||
|
1. Install the named packages, skipping prompts etc.
|
||||||
|
2. Clean up the apt metadata afterwards to keep the image small.
|
||||||
|
|
||||||
|
Building
|
||||||
|
--------
|
||||||
|
|
||||||
|
- Install debootstrap and debian-archive-keyring.
|
||||||
|
- sudo ./buildall
|
||||||
|
|
||||||
|
To build an individual image:
|
||||||
|
|
||||||
|
- sudo ./mkimage jessie.tar jessie
|
||||||
|
|
||||||
|
To test the resulting image:
|
||||||
|
|
||||||
|
- docker import -t minideb:jessie jessie.tar
|
||||||
|
- ./test minideb:jessie
|
||||||
|
|
||||||
|
Nami
|
||||||
|
----
|
||||||
|
|
||||||
|
Nami from Bitnami allows you to install Bitnami-maintained packages.
|
||||||
|
|
||||||
|
The `namibase` directory contains `Dockerfile`s for building images
|
||||||
|
containing `nami` based on the minideb images. They will also be build
|
||||||
|
by the `buildall` script. You will first have to download the
|
||||||
|
`nami-linux-x64.tar.gz` tarball in to the `namibase` directory, but
|
||||||
|
unfortunately there is no public source for those tarballs currently.
|
||||||
|
|
||||||
|
TODO
|
||||||
|
----
|
||||||
|
|
||||||
|
- Look at whether the process produces the same bits given the same inputs
|
||||||
|
- Can we use a custom debootstrap script to avoid removing packages?
|
||||||
|
- `install_packages` to also run the docs/locales/etc. cleanups
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
|
||||||
|
DISTS="jessie
|
||||||
|
unstable
|
||||||
|
"
|
||||||
|
LATEST=jessie
|
||||||
|
|
||||||
|
BASENAME=jamesw/minideb
|
||||||
|
NAMINAME=jamesw/mininami
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
for DIST in $DISTS; do
|
||||||
|
[ -f namibase/Dockerfile-$DIST ] || (echo "Unknown distribution: $DIST" && exit 1)
|
||||||
|
echo "============================================"
|
||||||
|
echo "Building $BASENAME:$DIST"
|
||||||
|
echo "============================================"
|
||||||
|
./mkimage build/$DIST.tar $DIST
|
||||||
|
docker import --change "CMD /bin/bash" build/$DIST.tar $BASENAME:$DIST
|
||||||
|
echo "============================================"
|
||||||
|
echo "Running tests for $BASENAME:$DIST"
|
||||||
|
echo "============================================"
|
||||||
|
./test $BASENAME:$DIST
|
||||||
|
echo "============================================"
|
||||||
|
echo "Building $NAMINAME:$DIST"
|
||||||
|
echo "============================================"
|
||||||
|
docker build -t $NAMINAME:$DIST -f namibase/Dockerfile-$DIST namibase
|
||||||
|
echo "============================================"
|
||||||
|
echo "Running tests for $NAMINAME:$DIST"
|
||||||
|
echo "============================================"
|
||||||
|
./namibase/test $NAMINAME:$DIST
|
||||||
|
done
|
||||||
|
docker tag $BASENAME:$LATEST $BASENAME:latest
|
||||||
|
docker tag $NAMINAME:$LATEST $NAMINAME:latest
|
||||||
@@ -0,0 +1,205 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
|
||||||
|
TARGET=${1:?Specify the target filename}
|
||||||
|
DIST=${2:-stable}
|
||||||
|
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
DIRS_TO_TRIM="/usr/share/man
|
||||||
|
/usr/share/doc
|
||||||
|
/var/cache/apt
|
||||||
|
/var/lib/apt/lists
|
||||||
|
/usr/share/locale
|
||||||
|
/var/log
|
||||||
|
/usr/share/info
|
||||||
|
"
|
||||||
|
|
||||||
|
PACKAGES_TO_EXCLUDE="acl
|
||||||
|
bsdutils
|
||||||
|
debconf-i18n
|
||||||
|
dmsetup
|
||||||
|
e2fslibs
|
||||||
|
e2fsprogs
|
||||||
|
gcc-4.8-base
|
||||||
|
init
|
||||||
|
initscripts
|
||||||
|
insserv
|
||||||
|
libcap2
|
||||||
|
libcap2-bin
|
||||||
|
libcryptsetup4
|
||||||
|
libdevmapper1.02.1
|
||||||
|
libkmod2
|
||||||
|
liblocale-gettext-perl
|
||||||
|
libmount1
|
||||||
|
libncursesw5
|
||||||
|
libprocps3
|
||||||
|
libsystemd0
|
||||||
|
libtext-charwidth-perl
|
||||||
|
libtext-iconv-perl
|
||||||
|
libtext-wrapi18n-perl
|
||||||
|
libudev1
|
||||||
|
mount
|
||||||
|
ncurses-bin
|
||||||
|
ncurses-base
|
||||||
|
procps
|
||||||
|
startpar
|
||||||
|
systemd
|
||||||
|
systemd-sysv
|
||||||
|
sysv-rc
|
||||||
|
sysvinit-utils
|
||||||
|
udev
|
||||||
|
util-linux
|
||||||
|
"
|
||||||
|
|
||||||
|
rootfsDir=$(mktemp -d)
|
||||||
|
echo "Building base"
|
||||||
|
debootstrap --force-check-gpg --variant minbase --foreign $DIST "$rootfsDir"
|
||||||
|
chroot "$rootfsDir" debootstrap/debootstrap --second-stage
|
||||||
|
|
||||||
|
echo "Applying docker-specific tweaks"
|
||||||
|
# These are copied from the docker contrib/mkimage/debootstrap script.
|
||||||
|
|
||||||
|
# get path to "chroot" in our current PATH
|
||||||
|
chrootPath="$(type -P chroot)"
|
||||||
|
rootfs_chroot() {
|
||||||
|
# "chroot" doesn't set PATH, so we need to set it explicitly to something our new debootstrap chroot can use appropriately!
|
||||||
|
# set PATH and chroot away!
|
||||||
|
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
|
||||||
|
"$chrootPath" "$rootfsDir" "$@"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# prevent init scripts from running during install/update
|
||||||
|
echo >&2 "+ echo exit 101 > '$rootfsDir/usr/sbin/policy-rc.d'"
|
||||||
|
cat > "$rootfsDir/usr/sbin/policy-rc.d" <<-'EOF'
|
||||||
|
#!/bin/sh
|
||||||
|
# For most Docker users, "apt-get install" only happens during "docker build",
|
||||||
|
# where starting services doesn't work and often fails in humorous ways. This
|
||||||
|
# prevents those failures by stopping the services from attempting to start.
|
||||||
|
exit 101
|
||||||
|
EOF
|
||||||
|
chmod +x "$rootfsDir/usr/sbin/policy-rc.d"
|
||||||
|
|
||||||
|
# prevent upstart scripts from running during install/update
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
rootfs_chroot dpkg-divert --local --rename --add /sbin/initctl
|
||||||
|
cp -a "$rootfsDir/usr/sbin/policy-rc.d" "$rootfsDir/sbin/initctl"
|
||||||
|
sed -i 's/^exit.*/exit 0/' "$rootfsDir/sbin/initctl"
|
||||||
|
)
|
||||||
|
|
||||||
|
# shrink a little, since apt makes us cache-fat (wheezy: ~157.5MB vs ~120MB)
|
||||||
|
( set -x; rootfs_chroot apt-get clean )
|
||||||
|
|
||||||
|
# this file is one APT creates to make sure we don't "autoremove" our currently
|
||||||
|
# in-use kernel, which doesn't really apply to debootstraps/Docker images that
|
||||||
|
# don't even have kernels installed
|
||||||
|
rm -f "$rootfsDir/etc/apt/apt.conf.d/01autoremove-kernels"
|
||||||
|
|
||||||
|
# Ubuntu 10.04 sucks... :)
|
||||||
|
if strings "$rootfsDir/usr/bin/dpkg" | grep -q unsafe-io; then
|
||||||
|
# force dpkg not to call sync() after package extraction (speeding up installs)
|
||||||
|
echo >&2 "+ echo force-unsafe-io > '$rootfsDir/etc/dpkg/dpkg.cfg.d/docker-apt-speedup'"
|
||||||
|
cat > "$rootfsDir/etc/dpkg/dpkg.cfg.d/docker-apt-speedup" <<-'EOF'
|
||||||
|
# For most Docker users, package installs happen during "docker build", which
|
||||||
|
# doesn't survive power loss and gets restarted clean afterwards anyhow, so
|
||||||
|
# this minor tweak gives us a nice speedup (much nicer on spinning disks,
|
||||||
|
# obviously).
|
||||||
|
force-unsafe-io
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$rootfsDir/etc/apt/apt.conf.d" ]; then
|
||||||
|
# _keep_ us lean by effectively running "apt-get clean" after every install
|
||||||
|
aptGetClean='"rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true";'
|
||||||
|
echo >&2 "+ cat > '$rootfsDir/etc/apt/apt.conf.d/docker-clean'"
|
||||||
|
cat > "$rootfsDir/etc/apt/apt.conf.d/docker-clean" <<-EOF
|
||||||
|
# Since for most Docker users, package installs happen in "docker build" steps,
|
||||||
|
# they essentially become individual layers due to the way Docker handles
|
||||||
|
# layering, especially using CoW filesystems. What this means for us is that
|
||||||
|
# the caches that APT keeps end up just wasting space in those layers, making
|
||||||
|
# our layers unnecessarily large (especially since we'll normally never use
|
||||||
|
# these caches again and will instead just "docker build" again and make a brand
|
||||||
|
# new image).
|
||||||
|
# Ideally, these would just be invoking "apt-get clean", but in our testing,
|
||||||
|
# that ended up being cyclic and we got stuck on APT's lock, so we get this fun
|
||||||
|
# creation that's essentially just "apt-get clean".
|
||||||
|
DPkg::Post-Invoke { ${aptGetClean} };
|
||||||
|
APT::Update::Post-Invoke { ${aptGetClean} };
|
||||||
|
Dir::Cache::pkgcache "";
|
||||||
|
Dir::Cache::srcpkgcache "";
|
||||||
|
# Note that we do realize this isn't the ideal way to do this, and are always
|
||||||
|
# open to better suggestions (https://github.com/docker/docker/issues).
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# remove apt-cache translations for fast "apt-get update"
|
||||||
|
echo >&2 "+ echo Acquire::Languages 'none' > '$rootfsDir/etc/apt/apt.conf.d/docker-no-languages'"
|
||||||
|
cat > "$rootfsDir/etc/apt/apt.conf.d/docker-no-languages" <<-'EOF'
|
||||||
|
# In Docker, we don't often need the "Translations" files, so we're just wasting
|
||||||
|
# time and space by downloading them, and this inhibits that. For users that do
|
||||||
|
# need them, it's a simple matter to delete this file and "apt-get update". :)
|
||||||
|
Acquire::Languages "none";
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo >&2 "+ echo Acquire::GzipIndexes 'true' > '$rootfsDir/etc/apt/apt.conf.d/docker-gzip-indexes'"
|
||||||
|
cat > "$rootfsDir/etc/apt/apt.conf.d/docker-gzip-indexes" <<-'EOF'
|
||||||
|
# Since Docker users using "RUN apt-get update && apt-get install -y ..." in
|
||||||
|
# their Dockerfiles don't go delete the lists files afterwards, we want them to
|
||||||
|
# be as small as possible on-disk, so we explicitly request "gz" versions and
|
||||||
|
# tell Apt to keep them gzipped on-disk.
|
||||||
|
# For comparison, an "apt-get update" layer without this on a pristine
|
||||||
|
# "debian:wheezy" base image was "29.88 MB", where with this it was only
|
||||||
|
# "8.273 MB".
|
||||||
|
Acquire::GzipIndexes "true";
|
||||||
|
Acquire::CompressionTypes::Order:: "gz";
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# update "autoremove" configuration to be aggressive about removing suggests deps that weren't manually installed
|
||||||
|
echo >&2 "+ echo Apt::AutoRemove::SuggestsImportant 'false' > '$rootfsDir/etc/apt/apt.conf.d/docker-autoremove-suggests'"
|
||||||
|
cat > "$rootfsDir/etc/apt/apt.conf.d/docker-autoremove-suggests" <<-'EOF'
|
||||||
|
# Since Docker users are looking for the smallest possible final images, the
|
||||||
|
# following emerges as a very common pattern:
|
||||||
|
# RUN apt-get update \
|
||||||
|
# && apt-get install -y <packages> \
|
||||||
|
# && <do some compilation work> \
|
||||||
|
# && apt-get purge -y --auto-remove <packages>
|
||||||
|
# By default, APT will actually _keep_ packages installed via Recommends or
|
||||||
|
# Depends if another package Suggests them, even and including if the package
|
||||||
|
# that originally caused them to be installed is removed. Setting this to
|
||||||
|
# "false" ensures that APT is appropriately aggressive about removing the
|
||||||
|
# packages it added.
|
||||||
|
# https://aptitude.alioth.debian.org/doc/en/ch02s05s05.html#configApt-AutoRemove-SuggestsImportant
|
||||||
|
Apt::AutoRemove::SuggestsImportant "false";
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > "$rootfsDir/usr/sbin/install_packages" <<-'EOF'
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y "$@"
|
||||||
|
rm -r /var/lib/apt/lists /var/cache/apt/archives
|
||||||
|
EOF
|
||||||
|
chmod 0755 "$rootfsDir/usr/sbin/install_packages"
|
||||||
|
|
||||||
|
|
||||||
|
echo "Trimming down"
|
||||||
|
chroot "$rootfsDir" dpkg --force-all -P $PACKAGES_TO_EXCLUDE
|
||||||
|
for DIR in $DIRS_TO_TRIM; do
|
||||||
|
rm -r "$rootfsDir/$DIR"/*
|
||||||
|
done
|
||||||
|
echo "Total size"
|
||||||
|
du -skh "$rootfsDir"
|
||||||
|
echo "Package sizes"
|
||||||
|
chroot "$rootfsDir" dpkg-query -W -f '${Package} ${Installed-Size}\n'
|
||||||
|
echo "Largest dirs"
|
||||||
|
du "$rootfsDir" | sort -n | tail -n 20
|
||||||
|
echo "Built in $rootfsDir"
|
||||||
|
|
||||||
|
tar cf "$TARGET" -C "$rootfsDir" .
|
||||||
|
rm -r "$rootfsDir"
|
||||||
|
|
||||||
|
echo "Image built at ${TARGET}"
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
FROM jamesw/minideb:jessie
|
||||||
|
|
||||||
|
MAINTAINER James Westby <james@bitnami.com>
|
||||||
|
|
||||||
|
RUN install_packages curl gnupg busybox
|
||||||
|
|
||||||
|
ADD nami-linux-x64.tar.gz /opt/bitnami/
|
||||||
|
RUN ln -s /opt/bitnami/nami-linux-x64 /opt/bitnami/nami
|
||||||
|
|
||||||
|
ENV TINI_VERSION v0.9.0
|
||||||
|
|
||||||
|
RUN cd /tmp && \
|
||||||
|
curl -sSLO https://github.com/krallin/tini/releases/download/$TINI_VERSION/tini && \
|
||||||
|
curl -sSLO https://github.com/krallin/tini/releases/download/$TINI_VERSION/tini.asc && \
|
||||||
|
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 6380DC428747F6C393FEACA59A84159D7001A4E5 && \
|
||||||
|
gpg --verify tini.asc && \
|
||||||
|
chmod +x tini && \
|
||||||
|
mv tini /usr/local/bin/ && \
|
||||||
|
rm tini.asc
|
||||||
|
|
||||||
|
ENV PATH=/opt/bitnami/nami/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
|
ADD rootfs /
|
||||||
|
|
||||||
|
# Compatibilty as the modules still expect to find harpoon
|
||||||
|
RUN ln -s /opt/bitnami/nami/bin/nami /opt/bitnami/nami/bin/harpoon
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
FROM jamesw/minideb:unstable
|
||||||
|
|
||||||
|
MAINTAINER James Westby <james@bitnami.com>
|
||||||
|
|
||||||
|
RUN install_packages curl gnupg busybox
|
||||||
|
|
||||||
|
ADD nami-linux-x64.tar.gz /opt/bitnami/
|
||||||
|
RUN ln -s /opt/bitnami/nami-linux-x64 /opt/bitnami/nami
|
||||||
|
|
||||||
|
ENV TINI_VERSION v0.9.0
|
||||||
|
|
||||||
|
RUN cd /tmp && \
|
||||||
|
curl -sSLO https://github.com/krallin/tini/releases/download/$TINI_VERSION/tini && \
|
||||||
|
curl -sSLO https://github.com/krallin/tini/releases/download/$TINI_VERSION/tini.asc && \
|
||||||
|
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 6380DC428747F6C393FEACA59A84159D7001A4E5 && \
|
||||||
|
gpg --verify tini.asc && \
|
||||||
|
chmod +x tini && \
|
||||||
|
mv tini /usr/local/bin/ && \
|
||||||
|
rm tini.asc
|
||||||
|
|
||||||
|
ENV PATH=/opt/bitnami/nami/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
|
ADD rootfs /
|
||||||
|
|
||||||
|
# Compatibilty as the modules still expect to find harpoon
|
||||||
|
RUN ln -s /opt/bitnami/nami/bin/nami /opt/bitnami/nami/bin/harpoon
|
||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source /opt/bitnami/stacksmith-utils.sh
|
||||||
|
print_welcome_page
|
||||||
|
check_for_updates &
|
||||||
|
|
||||||
|
exec tini -- "$@"
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
BITNAMI_PREFIX=/opt/bitnami
|
||||||
|
UPDATE_SERVER="https://container.checkforupdates.com"
|
||||||
|
|
||||||
|
print_welcome_page() {
|
||||||
|
if [ -n "$BITNAMI_APP_NAME" ]; then
|
||||||
|
print_image_welcome_page
|
||||||
|
elif [ -n "$STACKSMITH_STACK_ID" ]; then
|
||||||
|
print_stacksmith_welcome_page
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_for_updates() {
|
||||||
|
if [ -z "$DISABLE_UPDATE_CHECK" ]; then
|
||||||
|
if [ -n "$BITNAMI_APP_NAME" ]; then
|
||||||
|
check_for_image_updates
|
||||||
|
elif [ -n "$STACKSMITH_STACK_ID" ]; then
|
||||||
|
check_for_stack_updates
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prints the welcome page for this Bitnami Docker image
|
||||||
|
print_image_welcome_page() {
|
||||||
|
GITHUB_PAGE=https://github.com/bitnami/bitnami-docker-${BITNAMI_APP_NAME}
|
||||||
|
cat << EndOfMessage
|
||||||
|
|
||||||
|
*** Welcome to the ${BITNAMI_APP_NAME} image ***
|
||||||
|
*** Brought to you by Bitnami ***
|
||||||
|
*** More information: ${GITHUB_PAGE} ***
|
||||||
|
*** Issues: ${GITHUB_PAGE}/issues ***
|
||||||
|
|
||||||
|
EndOfMessage
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prints the welcome page for this Stacksmith stack
|
||||||
|
print_stacksmith_welcome_page() {
|
||||||
|
STACKSMITH_URL="https://stacksmith.bitnami.com"
|
||||||
|
STACKSMITH_STACK_URL="$STACKSMITH_URL/dashboard/stacks/$STACKSMITH_STACK_ID"
|
||||||
|
|
||||||
|
if [ "$STACKSMITH_STACK_PRIVATE" ]; then
|
||||||
|
MSG1="Go to $STACKSMITH_STACK_URL to manage your stack."
|
||||||
|
else
|
||||||
|
MSG1="This stack was created anonymously."
|
||||||
|
MSG2="Sign up for a free account at $STACKSMITH_URL to manage and regenerate your stacks."
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat << EndOfMessage
|
||||||
|
|
||||||
|
*** Welcome to your $STACKSMITH_STACK_NAME container! ***
|
||||||
|
*** Brought to you by Bitnami. ***
|
||||||
|
*** $MSG1 ***
|
||||||
|
*** $MSG2 ***
|
||||||
|
|
||||||
|
EndOfMessage
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Checks for any updates for this Stacksmith stack
|
||||||
|
check_for_stack_updates() {
|
||||||
|
ORIGIN=${BITNAMI_CONTAINER_ORIGIN:-stacksmith}
|
||||||
|
|
||||||
|
RESPONSE=$(curl -s --connect-timeout 20 \
|
||||||
|
--cacert /opt/bitnami/updates-ca-cert.pem \
|
||||||
|
"$UPDATE_SERVER/api/v1?image=$STACKSMITH_STACK_ID&origin=$ORIGIN" \
|
||||||
|
-w "|%{http_code}")
|
||||||
|
|
||||||
|
STATUS=$(echo $RESPONSE | cut -d '|' -f 2)
|
||||||
|
|
||||||
|
ACTION="go to https://stacksmith.bitnami.com/dashboard/stacks/"
|
||||||
|
REGENERATE_ACTION="$ACTION$STACKSMITH_STACK_ID to regenerate"
|
||||||
|
RECREATE_ACTION="${ACTION}new to create a new stack"
|
||||||
|
|
||||||
|
if [ -z "$STACKSMITH_STACK_PRIVATE" ]; then
|
||||||
|
# Can't regenerate if it's an anonymous stack
|
||||||
|
REGENERATE_ACTION=$RECREATE_ACTION
|
||||||
|
fi
|
||||||
|
|
||||||
|
OUTDATED_MSG="Updates available"
|
||||||
|
VULNERABLE_MSG="Your stack is vulnerable"
|
||||||
|
|
||||||
|
if [ "$STATUS" = "200" ]; then
|
||||||
|
COLOR="\e[0;30;42m"
|
||||||
|
MSG="Your stack is up to date!"
|
||||||
|
elif [ "$STATUS" = "201" ]; then
|
||||||
|
COLOR="\e[0;30;43m"
|
||||||
|
MSG="$OUTDATED_MSG: $REGENERATE_ACTION"
|
||||||
|
elif [ "$STATUS" = "204" ]; then
|
||||||
|
COLOR="\e[0;30;43m"
|
||||||
|
MSG="$OUTDATED_MSG: $RECREATE_ACTION"
|
||||||
|
elif [ "$STATUS" = "426" ]; then
|
||||||
|
COLOR="\e[0;37;41m"
|
||||||
|
MSG="$VULNERABLE_MSG: $REGENERATE_ACTION"
|
||||||
|
elif [ "$STATUS" = "423" ]; then
|
||||||
|
COLOR="\e[0;37;41m"
|
||||||
|
MSG="$VULNERABLE_MSG: $RECREATE_ACTION"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$MSG" ]; then
|
||||||
|
printf "\n$COLOR*** $MSG ***\e[0m\n\n"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks for any updates for this Bitnami Docker image
|
||||||
|
check_for_image_updates() {
|
||||||
|
UPDATE_SERVER="https://container.checkforupdates.com"
|
||||||
|
ORIGIN=${BITNAMI_CONTAINER_ORIGIN:-DHR}
|
||||||
|
|
||||||
|
RESPONSE=$(curl -s --connect-timeout 20 \
|
||||||
|
--cacert $BITNAMI_PREFIX/updates-ca-cert.pem \
|
||||||
|
"$UPDATE_SERVER/api/v1?image=$BITNAMI_APP_NAME&version=$BITNAMI_IMAGE_VERSION&origin=$ORIGIN" \
|
||||||
|
-w "|%{http_code}")
|
||||||
|
|
||||||
|
VERSION=$(echo $RESPONSE | cut -d '|' -f 1)
|
||||||
|
if [[ ! $VERSION =~ [0-9.-] ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
STATUS=$(echo $RESPONSE | cut -d '|' -f 2)
|
||||||
|
|
||||||
|
if [ "$STATUS" = "200" ]; then
|
||||||
|
COLOR="\e[0;30;42m"
|
||||||
|
MSG="Your container is up to date!"
|
||||||
|
elif [ "$STATUS" = "201" ]; then
|
||||||
|
COLOR="\e[0;30;43m"
|
||||||
|
MSG="New version available: run docker pull bitnami/$BITNAMI_APP_NAME:$VERSION to update."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$MSG" ]; then
|
||||||
|
printf "\n$COLOR*** $MSG ***\e[0m\n\n"
|
||||||
|
fi
|
||||||
|
}
|
||||||
@@ -0,0 +1,839 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" class="">
|
||||||
|
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# object: http://ogp.me/ns/object# article: http://ogp.me/ns/article# profile: http://ogp.me/ns/profile#">
|
||||||
|
<meta charset='utf-8'>
|
||||||
|
|
||||||
|
<link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/frameworks-5fc7c6e8cf4372103a3e557a9fd70de7ffb44c643a350ece5b400060b64141e7.css" media="all" rel="stylesheet" />
|
||||||
|
<link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/github-d8ed145bdf068fa6112b605071db55ccd9a7045533a2919d609fd28fbdf7d956.css" media="all" rel="stylesheet" />
|
||||||
|
|
||||||
|
|
||||||
|
<link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/site-f4b3d32cffc56de06873b8a6d88ae6139de92dc0fc31574232803d68729f6fac.css" media="all" rel="stylesheet" />
|
||||||
|
|
||||||
|
|
||||||
|
<link as="script" href="https://assets-cdn.github.com/assets/frameworks-404cdd1add1f710db016a02e5e31fff8a9089d14ff0c227df862b780886db7d5.js" rel="preload" />
|
||||||
|
|
||||||
|
<link as="script" href="https://assets-cdn.github.com/assets/github-70f59e082c85a766a9d6f4e75d4c2fee34c0b5554f941d070170b1a3bb14d607.js" rel="preload" />
|
||||||
|
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta http-equiv="Content-Language" content="en">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
|
||||||
|
<title>stacksmith-base/updates-ca-cert.pem at master · bitnami/stacksmith-base · GitHub</title>
|
||||||
|
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
|
||||||
|
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
|
||||||
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-180x180.png">
|
||||||
|
<meta property="fb:app_id" content="1401488693436528">
|
||||||
|
|
||||||
|
<meta content="https://avatars3.githubusercontent.com/u/5446553?v=3&s=400" name="twitter:image:src" /><meta content="@github" name="twitter:site" /><meta content="summary" name="twitter:card" /><meta content="bitnami/stacksmith-base" name="twitter:title" /><meta content="stacksmith-base - Dockerfiles for the base images used in Bitnami Stacksmith" name="twitter:description" />
|
||||||
|
<meta content="https://avatars3.githubusercontent.com/u/5446553?v=3&s=400" property="og:image" /><meta content="GitHub" property="og:site_name" /><meta content="object" property="og:type" /><meta content="bitnami/stacksmith-base" property="og:title" /><meta content="https://github.com/bitnami/stacksmith-base" property="og:url" /><meta content="stacksmith-base - Dockerfiles for the base images used in Bitnami Stacksmith" property="og:description" />
|
||||||
|
<meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
|
||||||
|
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
|
||||||
|
<link rel="assets" href="https://assets-cdn.github.com/">
|
||||||
|
|
||||||
|
<meta name="pjax-timeout" content="1000">
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="msapplication-TileImage" content="/windows-tile.png">
|
||||||
|
<meta name="msapplication-TileColor" content="#ffffff">
|
||||||
|
<meta name="selected-link" value="repo_source" data-pjax-transient>
|
||||||
|
|
||||||
|
<meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
|
||||||
|
<meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
|
||||||
|
<meta name="google-analytics" content="UA-3769691-2">
|
||||||
|
|
||||||
|
<meta content="collector.githubapp.com" name="octolytics-host" /><meta content="github" name="octolytics-app-id" /><meta content="561FA33B:55FD:4831F0F:579B6080" name="octolytics-dimension-request_id" />
|
||||||
|
<meta content="/<user-name>/<repo-name>/blob/show" data-pjax-transient="true" name="analytics-location" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta class="js-ga-set" name="dimension1" content="Logged Out">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="hostname" content="github.com">
|
||||||
|
<meta name="user-login" content="">
|
||||||
|
|
||||||
|
<meta name="expected-hostname" content="github.com">
|
||||||
|
<meta name="js-proxy-site-detection-payload" content="MzAxYWZhZTZlN2VkMTRhMGNkOTM0NjRjMWE2ZmIwM2U2MDE2Nzc2OTRhNjZhODNlOWExMzA3NzA2OGVkYWYyM3x7InJlbW90ZV9hZGRyZXNzIjoiODYuMzEuMTYzLjU5IiwicmVxdWVzdF9pZCI6IjU2MUZBMzNCOjU1RkQ6NDgzMUYwRjo1NzlCNjA4MCIsInRpbWVzdGFtcCI6MTQ2OTgwMDU3Nn0=">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="mask-icon" href="https://assets-cdn.github.com/pinned-octocat.svg" color="#4078c0">
|
||||||
|
<link rel="icon" type="image/x-icon" href="https://assets-cdn.github.com/favicon.ico">
|
||||||
|
|
||||||
|
<meta name="html-safe-nonce" content="38aa0b0679f1e874030dfefac296a9cbed3fa16c">
|
||||||
|
<meta content="14a4a5b47526efc5cb8934b04809f1b646b1ab5f" name="form-nonce" />
|
||||||
|
|
||||||
|
<meta http-equiv="x-pjax-version" content="7c9e8c845288272e709a52e4163ff196">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="description" content="stacksmith-base - Dockerfiles for the base images used in Bitnami Stacksmith">
|
||||||
|
<meta name="go-import" content="github.com/bitnami/stacksmith-base git https://github.com/bitnami/stacksmith-base.git">
|
||||||
|
|
||||||
|
<meta content="5446553" name="octolytics-dimension-user_id" /><meta content="bitnami" name="octolytics-dimension-user_login" /><meta content="54024001" name="octolytics-dimension-repository_id" /><meta content="bitnami/stacksmith-base" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="54024001" name="octolytics-dimension-repository_network_root_id" /><meta content="bitnami/stacksmith-base" name="octolytics-dimension-repository_network_root_nwo" />
|
||||||
|
<link href="https://github.com/bitnami/stacksmith-base/commits/master.atom" rel="alternate" title="Recent Commits to stacksmith-base:master" type="application/atom+xml">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="canonical" href="https://github.com/bitnami/stacksmith-base/blob/master/rootfs/opt/bitnami/updates-ca-cert.pem" data-pjax-transient>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
<body class="logged-out env-production vis-public page-blob">
|
||||||
|
<div id="js-pjax-loader-bar" class="pjax-loader-bar"></div>
|
||||||
|
<a href="#start-of-content" tabindex="1" class="accessibility-aid js-skip-to-content">Skip to content</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<header class="site-header js-details-container" role="banner">
|
||||||
|
<div class="container-responsive">
|
||||||
|
<a class="header-logo-invertocat" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-mark-github" height="32" version="1.1" viewBox="0 0 16 16" width="32"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button class="btn-link right site-header-toggle js-details-target" type="button" aria-label="Toggle navigation">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-three-bars" height="24" version="1.1" viewBox="0 0 12 16" width="18"><path d="M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z"></path></svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="site-header-menu">
|
||||||
|
<nav class="site-header-nav site-header-nav-main">
|
||||||
|
<a href="/personal" class="js-selected-navigation-item nav-item nav-item-personal" data-ga-click="Header, click, Nav menu - item:personal" data-selected-links="/personal /personal">
|
||||||
|
Personal
|
||||||
|
</a> <a href="/open-source" class="js-selected-navigation-item nav-item nav-item-opensource" data-ga-click="Header, click, Nav menu - item:opensource" data-selected-links="/open-source /open-source">
|
||||||
|
Open source
|
||||||
|
</a> <a href="/business" class="js-selected-navigation-item nav-item nav-item-business" data-ga-click="Header, click, Nav menu - item:business" data-selected-links="/business /business/features /business/customers /business">
|
||||||
|
Business
|
||||||
|
</a> <a href="/explore" class="js-selected-navigation-item nav-item nav-item-explore" data-ga-click="Header, click, Nav menu - item:explore" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship /explore">
|
||||||
|
Explore
|
||||||
|
</a> </nav>
|
||||||
|
|
||||||
|
<div class="site-header-actions">
|
||||||
|
<a class="btn btn-primary site-header-actions-btn" href="/join?source=header-repo" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">Sign up</a>
|
||||||
|
<a class="btn site-header-actions-btn mr-2" href="/login?return_to=%2Fbitnami%2Fstacksmith-base%2Fblob%2Fmaster%2Frootfs%2Fopt%2Fbitnami%2Fupdates-ca-cert.pem" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="site-header-nav site-header-nav-secondary">
|
||||||
|
<a class="nav-item" href="/pricing">Pricing</a>
|
||||||
|
<a class="nav-item" href="/blog">Blog</a>
|
||||||
|
<a class="nav-item" href="https://help.github.com">Support</a>
|
||||||
|
<a class="nav-item header-search-link" href="https://github.com/search">Search GitHub</a>
|
||||||
|
<div class="header-search scoped-search site-scoped-search js-site-search" role="search">
|
||||||
|
<!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="/bitnami/stacksmith-base/search" class="js-site-search-form" data-scoped-search-url="/bitnami/stacksmith-base/search" data-unscoped-search-url="/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div>
|
||||||
|
<label class="form-control header-search-wrapper js-chromeless-input-container">
|
||||||
|
<div class="header-search-scope">This repository</div>
|
||||||
|
<input type="text"
|
||||||
|
class="form-control header-search-input js-site-search-focus js-site-search-field is-clearable"
|
||||||
|
data-hotkey="s"
|
||||||
|
name="q"
|
||||||
|
placeholder="Search"
|
||||||
|
aria-label="Search this repository"
|
||||||
|
data-unscoped-placeholder="Search GitHub"
|
||||||
|
data-scoped-placeholder="Search"
|
||||||
|
autocapitalize="off">
|
||||||
|
</label>
|
||||||
|
</form></div>
|
||||||
|
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="start-of-content" class="accessibility-aid"></div>
|
||||||
|
|
||||||
|
<div id="js-flash-container">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div role="main">
|
||||||
|
<div itemscope itemtype="http://schema.org/SoftwareSourceCode">
|
||||||
|
<div id="js-repo-pjax-container" data-pjax-container>
|
||||||
|
|
||||||
|
<div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav">
|
||||||
|
<div class="container repohead-details-container">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ul class="pagehead-actions">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="/login?return_to=%2Fbitnami%2Fstacksmith-base"
|
||||||
|
class="btn btn-sm btn-with-count tooltipped tooltipped-n"
|
||||||
|
aria-label="You must be signed in to watch a repository" rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"></path></svg>
|
||||||
|
Watch
|
||||||
|
</a>
|
||||||
|
<a class="social-count" href="/bitnami/stacksmith-base/watchers">
|
||||||
|
27
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="/login?return_to=%2Fbitnami%2Fstacksmith-base"
|
||||||
|
class="btn btn-sm btn-with-count tooltipped tooltipped-n"
|
||||||
|
aria-label="You must be signed in to star a repository" rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-star" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74z"></path></svg>
|
||||||
|
Star
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a class="social-count js-social-count" href="/bitnami/stacksmith-base/stargazers">
|
||||||
|
1
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="/login?return_to=%2Fbitnami%2Fstacksmith-base"
|
||||||
|
class="btn btn-sm btn-with-count tooltipped tooltipped-n"
|
||||||
|
aria-label="You must be signed in to fork a repository" rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-repo-forked" height="16" version="1.1" viewBox="0 0 10 16" width="10"><path d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"></path></svg>
|
||||||
|
Fork
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="/bitnami/stacksmith-base/network" class="social-count">
|
||||||
|
4
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h1 class="public ">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-repo" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"></path></svg>
|
||||||
|
<span class="author" itemprop="author"><a href="/bitnami" class="url fn" rel="author">bitnami</a></span><!--
|
||||||
|
--><span class="path-divider">/</span><!--
|
||||||
|
--><strong itemprop="name"><a href="/bitnami/stacksmith-base" data-pjax="#js-repo-pjax-container">stacksmith-base</a></strong>
|
||||||
|
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<nav class="reponav js-repo-nav js-sidenav-container-pjax"
|
||||||
|
itemscope
|
||||||
|
itemtype="http://schema.org/BreadcrumbList"
|
||||||
|
role="navigation"
|
||||||
|
data-pjax="#js-repo-pjax-container">
|
||||||
|
|
||||||
|
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||||
|
<a href="/bitnami/stacksmith-base" aria-selected="true" class="js-selected-navigation-item selected reponav-item" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches /bitnami/stacksmith-base" itemprop="url">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-code" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"></path></svg>
|
||||||
|
<span itemprop="name">Code</span>
|
||||||
|
<meta itemprop="position" content="1">
|
||||||
|
</a> </span>
|
||||||
|
|
||||||
|
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||||
|
<a href="/bitnami/stacksmith-base/issues" class="js-selected-navigation-item reponav-item" data-hotkey="g i" data-selected-links="repo_issues repo_labels repo_milestones /bitnami/stacksmith-base/issues" itemprop="url">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-issue-opened" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg>
|
||||||
|
<span itemprop="name">Issues</span>
|
||||||
|
<span class="counter">0</span>
|
||||||
|
<meta itemprop="position" content="2">
|
||||||
|
</a> </span>
|
||||||
|
|
||||||
|
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
|
||||||
|
<a href="/bitnami/stacksmith-base/pulls" class="js-selected-navigation-item reponav-item" data-hotkey="g p" data-selected-links="repo_pulls /bitnami/stacksmith-base/pulls" itemprop="url">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-git-pull-request" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"></path></svg>
|
||||||
|
<span itemprop="name">Pull requests</span>
|
||||||
|
<span class="counter">1</span>
|
||||||
|
<meta itemprop="position" content="3">
|
||||||
|
</a> </span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="/bitnami/stacksmith-base/pulse" class="js-selected-navigation-item reponav-item" data-selected-links="pulse /bitnami/stacksmith-base/pulse">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-pulse" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M11.5 8L8.8 5.4 6.6 8.5 5.5 1.6 2.38 8H0v2h3.6l.9-1.8.9 5.4L9 8.5l1.6 1.5H14V8z"></path></svg>
|
||||||
|
Pulse
|
||||||
|
</a>
|
||||||
|
<a href="/bitnami/stacksmith-base/graphs" class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors /bitnami/stacksmith-base/graphs">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-graph" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"></path></svg>
|
||||||
|
Graphs
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container new-discussion-timeline experiment-repo-nav">
|
||||||
|
<div class="repository-content">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a href="/bitnami/stacksmith-base/blob/6ebb6b8034a5c2934761f306fa51316494be8224/rootfs/opt/bitnami/updates-ca-cert.pem" class="hidden js-permalink-shortcut" data-hotkey="y">Permalink</a>
|
||||||
|
|
||||||
|
<!-- blob contrib key: blob_contributors:v21:848392b11e9cb4b6dbb8acf5441d5c6b -->
|
||||||
|
|
||||||
|
<div class="file-navigation js-zeroclipboard-container">
|
||||||
|
|
||||||
|
<div class="select-menu branch-select-menu js-menu-container js-select-menu left">
|
||||||
|
<button class="btn btn-sm select-menu-button js-menu-target css-truncate" data-hotkey="w"
|
||||||
|
title="master"
|
||||||
|
type="button" aria-label="Switch branches or tags" tabindex="0" aria-haspopup="true">
|
||||||
|
<i>Branch:</i>
|
||||||
|
<span class="js-select-button css-truncate-target">master</span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="select-menu-modal-holder js-menu-content js-navigation-container" data-pjax aria-hidden="true">
|
||||||
|
|
||||||
|
<div class="select-menu-modal">
|
||||||
|
<div class="select-menu-header">
|
||||||
|
<svg aria-label="Close" class="octicon octicon-x js-menu-close" height="16" role="img" version="1.1" viewBox="0 0 12 16" width="12"><path d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"></path></svg>
|
||||||
|
<span class="select-menu-title">Switch branches/tags</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="select-menu-filters">
|
||||||
|
<div class="select-menu-text-filter">
|
||||||
|
<input type="text" aria-label="Filter branches/tags" id="context-commitish-filter-field" class="form-control js-filterable-field js-navigation-enable" placeholder="Filter branches/tags">
|
||||||
|
</div>
|
||||||
|
<div class="select-menu-tabs">
|
||||||
|
<ul>
|
||||||
|
<li class="select-menu-tab">
|
||||||
|
<a href="#" data-tab-filter="branches" data-filter-placeholder="Filter branches/tags" class="js-select-menu-tab" role="tab">Branches</a>
|
||||||
|
</li>
|
||||||
|
<li class="select-menu-tab">
|
||||||
|
<a href="#" data-tab-filter="tags" data-filter-placeholder="Find a tag…" class="js-select-menu-tab" role="tab">Tags</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="branches" role="menu">
|
||||||
|
|
||||||
|
<div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
|
||||||
|
|
||||||
|
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/blob/bump-revisions/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="bump-revisions"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target js-select-menu-filter-text" title="bump-revisions">
|
||||||
|
bump-revisions
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/blob/disable-update-check-optionally/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="disable-update-check-optionally"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target js-select-menu-filter-text" title="disable-update-check-optionally">
|
||||||
|
disable-update-check-optionally
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open selected"
|
||||||
|
href="/bitnami/stacksmith-base/blob/master/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="master"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target js-select-menu-filter-text" title="master">
|
||||||
|
master
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/blob/revert-24-debian-r8/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="revert-24-debian-r8"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target js-select-menu-filter-text" title="revert-24-debian-r8">
|
||||||
|
revert-24-debian-r8
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="select-menu-no-results">Nothing to show</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="select-menu-list select-menu-tab-bucket js-select-menu-tab-bucket" data-tab-filter="tags">
|
||||||
|
<div data-filterable-for="context-commitish-filter-field" data-filterable-type="substring">
|
||||||
|
|
||||||
|
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/16.04-r1/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/16.04-r1"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/16.04-r1">
|
||||||
|
ubuntu/16.04-r1
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/16.04-r0/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/16.04-r0"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/16.04-r0">
|
||||||
|
ubuntu/16.04-r0
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/15.10-r1/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/15.10-r1"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/15.10-r1">
|
||||||
|
ubuntu/15.10-r1
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/15.10-r0/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/15.10-r0"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/15.10-r0">
|
||||||
|
ubuntu/15.10-r0
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/14.04-r8/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/14.04-r8"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/14.04-r8">
|
||||||
|
ubuntu/14.04-r8
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/14.04-r07/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/14.04-r07"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/14.04-r07">
|
||||||
|
ubuntu/14.04-r07
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/14.04-r06/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/14.04-r06"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/14.04-r06">
|
||||||
|
ubuntu/14.04-r06
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/14.04-r05/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/14.04-r05"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/14.04-r05">
|
||||||
|
ubuntu/14.04-r05
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/12.04-r1/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/12.04-r1"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/12.04-r1">
|
||||||
|
ubuntu/12.04-r1
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/ubuntu/12.04-r0/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="ubuntu/12.04-r0"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="ubuntu/12.04-r0">
|
||||||
|
ubuntu/12.04-r0
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/debian/wheezy-r8/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="debian/wheezy-r8"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="debian/wheezy-r8">
|
||||||
|
debian/wheezy-r8
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/debian/wheezy-r07/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="debian/wheezy-r07"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="debian/wheezy-r07">
|
||||||
|
debian/wheezy-r07
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/debian/wheezy-r7/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="debian/wheezy-r7"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="debian/wheezy-r7">
|
||||||
|
debian/wheezy-r7
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/debian/wheezy-r06/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="debian/wheezy-r06"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="debian/wheezy-r06">
|
||||||
|
debian/wheezy-r06
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/debian/wheezy-r05/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="debian/wheezy-r05"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="debian/wheezy-r05">
|
||||||
|
debian/wheezy-r05
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<a class="select-menu-item js-navigation-item js-navigation-open "
|
||||||
|
href="/bitnami/stacksmith-base/tree/debian/jessie-r0/rootfs/opt/bitnami/updates-ca-cert.pem"
|
||||||
|
data-name="debian/jessie-r0"
|
||||||
|
data-skip-pjax="true"
|
||||||
|
rel="nofollow">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-check select-menu-item-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5z"></path></svg>
|
||||||
|
<span class="select-menu-item-text css-truncate-target" title="debian/jessie-r0">
|
||||||
|
debian/jessie-r0
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="select-menu-no-results">Nothing to show</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="btn-group right">
|
||||||
|
<a href="/bitnami/stacksmith-base/find/master"
|
||||||
|
class="js-pjax-capture-input btn btn-sm"
|
||||||
|
data-pjax
|
||||||
|
data-hotkey="t">
|
||||||
|
Find file
|
||||||
|
</a>
|
||||||
|
<button aria-label="Copy file path to clipboard" class="js-zeroclipboard btn btn-sm zeroclipboard-button tooltipped tooltipped-s" data-copied-hint="Copied!" type="button">Copy path</button>
|
||||||
|
</div>
|
||||||
|
<div class="breadcrumb js-zeroclipboard-target">
|
||||||
|
<span class="repo-root js-repo-root"><span class="js-path-segment"><a href="/bitnami/stacksmith-base"><span>stacksmith-base</span></a></span></span><span class="separator">/</span><span class="js-path-segment"><a href="/bitnami/stacksmith-base/tree/master/rootfs"><span>rootfs</span></a></span><span class="separator">/</span><span class="js-path-segment"><a href="/bitnami/stacksmith-base/tree/master/rootfs/opt"><span>opt</span></a></span><span class="separator">/</span><span class="js-path-segment"><a href="/bitnami/stacksmith-base/tree/master/rootfs/opt/bitnami"><span>bitnami</span></a></span><span class="separator">/</span><strong class="final-path">updates-ca-cert.pem</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="commit-tease">
|
||||||
|
<span class="right">
|
||||||
|
<a class="commit-tease-sha" href="/bitnami/stacksmith-base/commit/aa1e447b85f4474d3be25ee9cd7173cac295125b" data-pjax>
|
||||||
|
aa1e447
|
||||||
|
</a>
|
||||||
|
<relative-time datetime="2016-03-16T11:50:48Z">Mar 16, 2016</relative-time>
|
||||||
|
</span>
|
||||||
|
<div>
|
||||||
|
<img alt="@prydonius" class="avatar" height="20" src="https://avatars3.githubusercontent.com/u/1544861?v=3&s=40" width="20" />
|
||||||
|
<a href="/prydonius" class="user-mention" rel="contributor">prydonius</a>
|
||||||
|
<a href="/bitnami/stacksmith-base/commit/aa1e447b85f4474d3be25ee9cd7173cac295125b" class="message" data-pjax="true" title="Initial commit">Initial commit</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="commit-tease-contributors">
|
||||||
|
<button type="button" class="btn-link muted-link contributors-toggle" data-facebox="#blob_contributors_box">
|
||||||
|
<strong>1</strong>
|
||||||
|
contributor
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="blob_contributors_box" style="display:none">
|
||||||
|
<h2 class="facebox-header" data-facebox-id="facebox-header">Users who have contributed to this file</h2>
|
||||||
|
<ul class="facebox-user-list" data-facebox-id="facebox-description">
|
||||||
|
<li class="facebox-user-list-item">
|
||||||
|
<img alt="@prydonius" height="24" src="https://avatars1.githubusercontent.com/u/1544861?v=3&s=48" width="24" />
|
||||||
|
<a href="/prydonius">prydonius</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="file">
|
||||||
|
<div class="file-header">
|
||||||
|
<div class="file-actions">
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
<a href="/bitnami/stacksmith-base/raw/master/rootfs/opt/bitnami/updates-ca-cert.pem" class="btn btn-sm " id="raw-url">Raw</a>
|
||||||
|
<a href="/bitnami/stacksmith-base/blame/master/rootfs/opt/bitnami/updates-ca-cert.pem" class="btn btn-sm js-update-url-with-hash">Blame</a>
|
||||||
|
<a href="/bitnami/stacksmith-base/commits/master/rootfs/opt/bitnami/updates-ca-cert.pem" class="btn btn-sm " rel="nofollow">History</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<button type="button" class="btn-octicon disabled tooltipped tooltipped-nw"
|
||||||
|
aria-label="You must be signed in to make or propose changes">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-pencil" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path d="M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"></path></svg>
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn-octicon btn-octicon-danger disabled tooltipped tooltipped-nw"
|
||||||
|
aria-label="You must be signed in to make or propose changes">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-trashcan" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="file-info">
|
||||||
|
34 lines (33 sloc)
|
||||||
|
<span class="file-info-divider"></span>
|
||||||
|
1.97 KB
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div itemprop="text" class="blob-wrapper data type-text">
|
||||||
|
<table class="highlight tab-size js-file-line-container" data-tab-size="8">
|
||||||
|
<tr>
|
||||||
|
<td id="L1" class="blob-num js-line-number" data-line-number="1"></td>
|
||||||
|
<td id="LC1" class="blob-code blob-code-inner js-file-line">-----BEGIN CERTIFICATE-----</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L2" class="blob-num js-line-number" data-line-number="2"></td>
|
||||||
|
<td id="LC2" class="blob-code blob-code-inner js-file-line">MIIFpTCCA42gAwIBAgIJAKt1o98RcsLQMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L3" class="blob-num js-line-number" data-line-number="3"></td>
|
||||||
|
<td id="LC3" class="blob-code blob-code-inner js-file-line">BAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEQMA4G</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L4" class="blob-num js-line-number" data-line-number="4"></td>
|
||||||
|
<td id="LC4" class="blob-code blob-code-inner js-file-line">A1UECgwHQml0bmFtaTEjMCEGA1UEAwwaQml0bmFtaSBQaG9uZSBIb21lIFJvb3Qg</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L5" class="blob-num js-line-number" data-line-number="5"></td>
|
||||||
|
<td id="LC5" class="blob-code blob-code-inner js-file-line">Q0EwHhcNMTUwNjE5MDAwMjA1WhcNMjUwNjE2MDAwMjA1WjBpMQswCQYDVQQGEwJV</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L6" class="blob-num js-line-number" data-line-number="6"></td>
|
||||||
|
<td id="LC6" class="blob-code blob-code-inner js-file-line">UzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xEDAOBgNVBAoM</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L7" class="blob-num js-line-number" data-line-number="7"></td>
|
||||||
|
<td id="LC7" class="blob-code blob-code-inner js-file-line">B0JpdG5hbWkxIzAhBgNVBAMMGkJpdG5hbWkgUGhvbmUgSG9tZSBSb290IENBMIIC</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L8" class="blob-num js-line-number" data-line-number="8"></td>
|
||||||
|
<td id="LC8" class="blob-code blob-code-inner js-file-line">IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArpIiJ+T9HOgvActkzXwTPjJF</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L9" class="blob-num js-line-number" data-line-number="9"></td>
|
||||||
|
<td id="LC9" class="blob-code blob-code-inner js-file-line">r48aAsQldu43XfmQ3Fp/og1r34ULwdSkSFgbwJ36h/Q16bk0WfRemugBNbOup2tf</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L10" class="blob-num js-line-number" data-line-number="10"></td>
|
||||||
|
<td id="LC10" class="blob-code blob-code-inner js-file-line">z9G6xv0PFZeTkv8U5emaGS3PneuG/3doPHutHGMjWie1vqOLHZuOxxvub3wv5YJO</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L11" class="blob-num js-line-number" data-line-number="11"></td>
|
||||||
|
<td id="LC11" class="blob-code blob-code-inner js-file-line">jKGgdUrwbC28Kag5UpcvouEq1WnrT1Mbjph3tHc/fDr6rSND4w2Aie5Z8GjYHaxR</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L12" class="blob-num js-line-number" data-line-number="12"></td>
|
||||||
|
<td id="LC12" class="blob-code blob-code-inner js-file-line">yXsykJguJQqlZbehPkRn2ywm2SWZiV1NQpH12lcSIXKG/hxd7QmUvaho1ZzOpwMt</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L13" class="blob-num js-line-number" data-line-number="13"></td>
|
||||||
|
<td id="LC13" class="blob-code blob-code-inner js-file-line">wMzz/+IVz1XvB/PELi7lm6jGz97kn2opBnY2P04tMK/ejRLB3DsiJ2CmAmOs9n44</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L14" class="blob-num js-line-number" data-line-number="14"></td>
|
||||||
|
<td id="LC14" class="blob-code blob-code-inner js-file-line">+6NG4Bu4Tgc/ZvgIGH0ix8w42vGKA3kR9KPIO3wWKMv6AeQS3J+ggae/e83H8uMF</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L15" class="blob-num js-line-number" data-line-number="15"></td>
|
||||||
|
<td id="LC15" class="blob-code blob-code-inner js-file-line">jPYchy6MkI9gyWktE1Um3iq7FgqcTmLHovvF1LABqbYMBnr85HTBlSYQ6mlz2VoN</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L16" class="blob-num js-line-number" data-line-number="16"></td>
|
||||||
|
<td id="LC16" class="blob-code blob-code-inner js-file-line">5muyL3LYC7WUYfQJVln5xs6j8VjXyVKTJWOAoJBIM1vgDanzHgbAmMK3CnRp2pF4</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L17" class="blob-num js-line-number" data-line-number="17"></td>
|
||||||
|
<td id="LC17" class="blob-code blob-code-inner js-file-line">VfszNlsjLguEf+hc7/GxslfQfW8MXhd+f3bnL2fsi5R5kNjzgHE2weKwwLkGMPKG</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L18" class="blob-num js-line-number" data-line-number="18"></td>
|
||||||
|
<td id="LC18" class="blob-code blob-code-inner js-file-line">aP96GxNPwlGSTG/tIuxPkye5vclEg0JaFXOg/pf2lH/P3NHeldLf1mUyXTprssy3</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L19" class="blob-num js-line-number" data-line-number="19"></td>
|
||||||
|
<td id="LC19" class="blob-code blob-code-inner js-file-line">nWkKllTJcq8zRU1r5kkCAwEAAaNQME4wHQYDVR0OBBYEFN2tSXBlE4PgqPxPy9VX</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L20" class="blob-num js-line-number" data-line-number="20"></td>
|
||||||
|
<td id="LC20" class="blob-code blob-code-inner js-file-line">Yimc/5kOMB8GA1UdIwQYMBaAFN2tSXBlE4PgqPxPy9VXYimc/5kOMAwGA1UdEwQF</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L21" class="blob-num js-line-number" data-line-number="21"></td>
|
||||||
|
<td id="LC21" class="blob-code blob-code-inner js-file-line">MAMBAf8wDQYJKoZIhvcNAQELBQADggIBAIvdKO/cXvNQ5/zEnfdQVDMnCUN+oQ4B</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L22" class="blob-num js-line-number" data-line-number="22"></td>
|
||||||
|
<td id="LC22" class="blob-code blob-code-inner js-file-line">45z/Te+zx990tRatdJR5d83LkyRdsl2n+VaxBXTE/ejIfuXcGguH1tEqAsG9R9cf</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L23" class="blob-num js-line-number" data-line-number="23"></td>
|
||||||
|
<td id="LC23" class="blob-code blob-code-inner js-file-line">2bs8hThkATydpPOCYF9QX+KFz/MiAqNDb0bUS7Uwk1cwSVwbE+9+FbPJGTgemNn9</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L24" class="blob-num js-line-number" data-line-number="24"></td>
|
||||||
|
<td id="LC24" class="blob-code blob-code-inner js-file-line">ZGGDMVLmYXu/Eh9tfZmHa0WYucsJG3hlxMoVymr5sZu9NStIkU+GaI42AXYOANOV</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L25" class="blob-num js-line-number" data-line-number="25"></td>
|
||||||
|
<td id="LC25" class="blob-code blob-code-inner js-file-line">Zh3E27zY0zYbaJIQXgVm8E4+KUuNSNotqZ5hOp9hLX60AVBd38R5zabsq2a2wAuE</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L26" class="blob-num js-line-number" data-line-number="26"></td>
|
||||||
|
<td id="LC26" class="blob-code blob-code-inner js-file-line">nLhkSP7SVQWisZKYI0J0Y7FSRKaEgI2NMxm8qXCbMSH/Yw3GXLpRCQS9YTNH0xYC</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L27" class="blob-num js-line-number" data-line-number="27"></td>
|
||||||
|
<td id="LC27" class="blob-code blob-code-inner js-file-line">AKII+oxIBEKCK/kWIvYjFnmGzUhrPUgxBiJzdaf+AdLsnH59+dn9ypw6GASJsrYa</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L28" class="blob-num js-line-number" data-line-number="28"></td>
|
||||||
|
<td id="LC28" class="blob-code blob-code-inner js-file-line">bWco5b2rcO3RNo0PgXf0fE/rUpKqcWE59DK8U9ihWegPSGO9J/hW8kBPWhk2Lcdo</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L29" class="blob-num js-line-number" data-line-number="29"></td>
|
||||||
|
<td id="LC29" class="blob-code blob-code-inner js-file-line">t39mAd63GiXiisQ2/VOu2nal/HycQds46BJIbq7gYoSsxwjdb3ANA5yR2xOCPLuj</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L30" class="blob-num js-line-number" data-line-number="30"></td>
|
||||||
|
<td id="LC30" class="blob-code blob-code-inner js-file-line">aCF63nnQ27U94h2qQwGvThrAVHa55+HmgxKQrWLVKTfRuDc9bc722rdmyaJS0RAV</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L31" class="blob-num js-line-number" data-line-number="31"></td>
|
||||||
|
<td id="LC31" class="blob-code blob-code-inner js-file-line">OBlWeNIKfzARPAvZVRhSrsYu/KtnrObd7i8efHQdKb3EFajQE/i6iX7eWMyZby3B</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L32" class="blob-num js-line-number" data-line-number="32"></td>
|
||||||
|
<td id="LC32" class="blob-code blob-code-inner js-file-line">0oj32J1Ls/y6</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td id="L33" class="blob-num js-line-number" data-line-number="33"></td>
|
||||||
|
<td id="LC33" class="blob-code blob-code-inner js-file-line">-----END CERTIFICATE-----</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="button" data-facebox="#jump-to-line" data-facebox-class="linejump" data-hotkey="l" class="hidden">Jump to Line</button>
|
||||||
|
<div id="jump-to-line" style="display:none">
|
||||||
|
<!-- </textarea> --><!-- '"` --><form accept-charset="UTF-8" action="" class="js-jump-to-line-form" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div>
|
||||||
|
<input class="form-control linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line…" aria-label="Jump to line" autofocus>
|
||||||
|
<button type="submit" class="btn">Go</button>
|
||||||
|
</form></div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-backdrop js-touch-events"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container site-footer-container">
|
||||||
|
<div class="site-footer" role="contentinfo">
|
||||||
|
<ul class="site-footer-links right">
|
||||||
|
<li><a href="https://github.com/contact" data-ga-click="Footer, go to contact, text:contact">Contact GitHub</a></li>
|
||||||
|
<li><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
|
||||||
|
<li><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
|
||||||
|
<li><a href="https://shop.github.com" data-ga-click="Footer, go to shop, text:shop">Shop</a></li>
|
||||||
|
<li><a href="https://github.com/blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
|
||||||
|
<li><a href="https://github.com/about" data-ga-click="Footer, go to about, text:about">About</a></li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<a href="https://github.com" aria-label="Homepage" class="site-footer-mark" title="GitHub">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-mark-github" height="24" version="1.1" viewBox="0 0 16 16" width="24"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg>
|
||||||
|
</a>
|
||||||
|
<ul class="site-footer-links">
|
||||||
|
<li>© 2016 <span title="0.04414s from github-fe157-cp1-prd.iad.github.net">GitHub</span>, Inc.</li>
|
||||||
|
<li><a href="https://github.com/site/terms" data-ga-click="Footer, go to terms, text:terms">Terms</a></li>
|
||||||
|
<li><a href="https://github.com/site/privacy" data-ga-click="Footer, go to privacy, text:privacy">Privacy</a></li>
|
||||||
|
<li><a href="https://github.com/security" data-ga-click="Footer, go to security, text:security">Security</a></li>
|
||||||
|
<li><a href="https://status.github.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
|
||||||
|
<li><a href="https://help.github.com" data-ga-click="Footer, go to help, text:help">Help</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="ajax-error-message" class="ajax-error-message flash flash-error">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"></path></svg>
|
||||||
|
<button type="button" class="flash-close js-flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"></path></svg>
|
||||||
|
</button>
|
||||||
|
Something went wrong with that request. Please try again.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/compat-7db58f8b7b91111107fac755dd8b178fe7db0f209ced51fc339c446ad3f8da2b.js"></script>
|
||||||
|
<script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/frameworks-404cdd1add1f710db016a02e5e31fff8a9089d14ff0c227df862b780886db7d5.js"></script>
|
||||||
|
<script async="async" crossorigin="anonymous" src="https://assets-cdn.github.com/assets/github-70f59e082c85a766a9d6f4e75d4c2fee34c0b5554f941d070170b1a3bb14d607.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner hidden">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"></path></svg>
|
||||||
|
<span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
|
||||||
|
<span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
|
||||||
|
</div>
|
||||||
|
<div class="facebox" id="facebox" style="display:none;">
|
||||||
|
<div class="facebox-popup">
|
||||||
|
<div class="facebox-content" role="dialog" aria-labelledby="facebox-header" aria-describedby="facebox-description">
|
||||||
|
</div>
|
||||||
|
<button type="button" class="facebox-close js-facebox-close" aria-label="Close modal">
|
||||||
|
<svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
Executable
+123
@@ -0,0 +1,123 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
print_usage() {
|
||||||
|
echo "Usage: bitnami-pkg <COMMAND> <PACKAGE>-<VERSION> [OPTIONS] -- [ARGS]"
|
||||||
|
echo ""
|
||||||
|
echo "Download and install Stacksmith packages"
|
||||||
|
echo ""
|
||||||
|
echo "Commands:"
|
||||||
|
echo " install Download and install a package."
|
||||||
|
echo " unpack Download and unpack a package."
|
||||||
|
echo ""
|
||||||
|
echo "Options:"
|
||||||
|
echo " -b, --bucket Package release bucket (default: stacksmith)."
|
||||||
|
echo " -c, --checksum SHA256 verification checksum."
|
||||||
|
echo " -h, --help Show this help message and exit."
|
||||||
|
echo ""
|
||||||
|
echo "Examples:"
|
||||||
|
echo " - Unpack package"
|
||||||
|
echo " \$ bitnami-pkg unpack nginx-1.9.10-0"
|
||||||
|
echo ""
|
||||||
|
echo " - Verify and Install package"
|
||||||
|
echo " \$ bitnami-pkg install nginx-1.9.10-0 --checksum 15565d06b18c2e3710fc08e579ddb3d0e39aa663264a0f7404f0743cb4cdb58d"
|
||||||
|
echo ""
|
||||||
|
echo " - Install package with arguments"
|
||||||
|
echo " \$ bitnami-pkg install mariadb-10.1.11-0 -- --password bitnami"
|
||||||
|
echo ""
|
||||||
|
echo " - Install package from testing"
|
||||||
|
echo " \$ bitnami-pkg install mariadb-10.1.11-0 --bucket testing"
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
# break up command line for easy parsing and check legal options
|
||||||
|
ARGS=$(busybox getopt -o b:c:h -l "bucket:,checksum:,help" -n "bitnami-pkg" -- "$@")
|
||||||
|
if [ $? -ne 0 ];
|
||||||
|
then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
eval set -- "$ARGS";
|
||||||
|
while true; do
|
||||||
|
case "$1" in
|
||||||
|
-b|--bucket)
|
||||||
|
shift
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
RELEASE_BUCKET=$1
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
-c|--checksum)
|
||||||
|
shift
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
PACKAGE_SHA256=$1
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
print_usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
--)
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# weed out unrecognized commands
|
||||||
|
case "$1" in
|
||||||
|
install|unpack)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "ERROR: Unrecognized command: $1"
|
||||||
|
echo ""
|
||||||
|
print_usage
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# install/unpack command need to be supplied a package name
|
||||||
|
if [ $# -lt 2 ]; then
|
||||||
|
print_usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
INSTALL_ROOT=/tmp/bitnami/pkg/install
|
||||||
|
CACHE_ROOT=/tmp/bitnami/pkg/cache
|
||||||
|
|
||||||
|
PACKAGE="$2-linux-x64"
|
||||||
|
PACKAGE_ARGS=${@:3}
|
||||||
|
PACKAGE_NAME=$(echo $PACKAGE | sed 's/-[0-9].*//')
|
||||||
|
RELEASE_BUCKET=${RELEASE_BUCKET:-stacksmith}
|
||||||
|
|
||||||
|
mkdir -p $INSTALL_ROOT
|
||||||
|
cd $INSTALL_ROOT
|
||||||
|
|
||||||
|
echo "===> Downloading $PACKAGE package"
|
||||||
|
if [ -f $CACHE_ROOT/$PACKAGE.tar.gz ]; then
|
||||||
|
echo "===> $CACHE_ROOT/$PACKAGE_NAME.tar.gz already exists, skipping download."
|
||||||
|
cp $CACHE_ROOT/$PACKAGE.tar.gz .
|
||||||
|
else
|
||||||
|
# display cURL progress bar when a tty is attached
|
||||||
|
if tty -s; then
|
||||||
|
CURL_ARGS="-#"
|
||||||
|
else
|
||||||
|
CURL_ARGS="-sS"
|
||||||
|
fi
|
||||||
|
curl $CURL_ARGS -LO https://downloads.bitnami.com/files/$RELEASE_BUCKET/$PACKAGE.tar.gz
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$PACKAGE_SHA256" ]; then
|
||||||
|
echo "===> Verifying package integrity"
|
||||||
|
echo "$PACKAGE_SHA256 $PACKAGE.tar.gz" | sha256sum -c -
|
||||||
|
fi
|
||||||
|
|
||||||
|
tar xzf $PACKAGE.tar.gz
|
||||||
|
case "$1" in
|
||||||
|
install) echo "===> Installing $PACKAGE" ;;
|
||||||
|
unpack) echo "===> Unpacking $PACKAGE" ;;
|
||||||
|
esac
|
||||||
|
nami $1 $PACKAGE $PACKAGE_ARGS
|
||||||
|
|
||||||
|
rm -rf $INSTALL_ROOT
|
||||||
Executable
+8
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
IMAGE_ID=$1
|
||||||
|
|
||||||
|
docker run --rm "$IMAGE_ID" nami --version
|
||||||
|
docker run --rm "$IMAGE_ID" bash -c "bitnami-pkg install memcached-1.4.25-2 --checksum b664b38a29a3e69f9ef61599aff647a868e00e8da8baccc976def58b2cd16b4e && [ -x /opt/bitnami/memcached/bin/memcached ]"
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DISTS="jessie
|
||||||
|
unstable
|
||||||
|
"
|
||||||
|
|
||||||
|
BASENAME=jamesw/minideb
|
||||||
|
NAMINAME=jamesw/mininami
|
||||||
|
|
||||||
|
for DIST in $DISTS; do
|
||||||
|
docker push $BASENAME:$DIST
|
||||||
|
docker push $NAMINAME:$DIST
|
||||||
|
done
|
||||||
|
docker push $BASENAME:latest
|
||||||
|
docker push $NAMINAME:latest
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
IMAGE_ID=$1
|
||||||
|
|
||||||
|
docker run --rm "$IMAGE_ID" dpkg -l apt
|
||||||
|
docker run --rm -e DEBIAN_FRONTEND=noninteractive "$IMAGE_ID" bash -c 'apt-get -q update && apt-get -q -y install less && less --help >/dev/null'
|
||||||
|
docker run --rm -e DEBIAN_FRONTEND=noninteractive "$IMAGE_ID" bash -c 'install_packages -q less && less --help >/dev/null && [ ! -e /var/cache/apt/archives ] && [ ! -e /var/lib/apt/lists ]'
|
||||||
|
docker run --rm -e DEBIAN_FRONTEND=noninteractive "$IMAGE_ID" bash -c '[ ! -e /debootstrap ]'
|
||||||
|
|
||||||
Reference in New Issue
Block a user