mirror of
https://github.com/bitnami/containers.git
synced 2026-03-07 10:07:20 +08:00
4.2.0-debian-10-r0 release
This commit is contained in:
66
bitnami/ghost/4/debian-10/Dockerfile
Normal file
66
bitnami/ghost/4/debian-10/Dockerfile
Normal file
@@ -0,0 +1,66 @@
|
||||
FROM docker.io/bitnami/minideb:buster
|
||||
LABEL maintainer "Bitnami <containers@bitnami.com>"
|
||||
|
||||
ENV BITNAMI_PKG_CHMOD="-R g+rwX,o+rw" \
|
||||
BITNAMI_PKG_EXTRA_DIRS="/.ghost /opt/bitnami/content" \
|
||||
HOME="/" \
|
||||
PATH="/opt/bitnami/node/bin:/opt/bitnami/python/bin:/opt/bitnami/mysql/bin:/opt/bitnami/common/bin:/opt/bitnami/ghost/bin:/opt/bitnami/nami/bin:$PATH"
|
||||
|
||||
COPY prebuildfs /
|
||||
# Install required system packages and dependencies
|
||||
RUN install_packages ca-certificates curl ghostscript gzip imagemagick libaudit1 libbsd0 libbz2-1.0 libc6 libcap-ng0 libffi6 libgcc1 libicu63 libjemalloc2 liblzma5 libncurses6 libncursesw6 libpam0g libreadline7 libsqlite3-0 libssl1.1 libstdc++6 libtinfo6 libx11-6 libxau6 libxcb1 libxdmcp6 libxml2 procps sudo tar zlib1g
|
||||
RUN /build/bitnami-user.sh
|
||||
RUN /build/install-nami.sh
|
||||
RUN bitnami-pkg install node-14.16.1-0 --checksum 115acb61c7b819f4733d937e81099c259e46c82f693ee32cc880db70356db285
|
||||
RUN bitnami-pkg unpack mysql-client-10.3.28-0 --checksum 9398376ca9e2033d5bc193232e8aa9b57d91d4ccf06fa67bfa0d30ef36e44c25
|
||||
RUN bitnami-pkg install tini-0.19.0-1 --checksum 9b1f1c095944bac88a62c1b63f3bff1bb123aa7ccd371c908c0e5b41cec2528d
|
||||
RUN bitnami-pkg install gosu-1.12.0-2 --checksum 4d858ac600c38af8de454c27b7f65c0074ec3069880cb16d259a6e40a46bbc50
|
||||
RUN bitnami-pkg unpack ghost-4.2.0-1 --checksum fb75378ec65b12c7d659fa0035b805bc14d19bb7421fb7f05e88eb665b031a3e
|
||||
|
||||
COPY rootfs /
|
||||
ENV ALLOW_EMPTY_PASSWORD="no" \
|
||||
BITNAMI_APP_NAME="ghost" \
|
||||
BITNAMI_IMAGE_VERSION="4.2.0-debian-10-r0" \
|
||||
BLOG_TITLE="User's Blog" \
|
||||
GHOST_DATABASE_NAME="bitnami_ghost" \
|
||||
GHOST_DATABASE_PASSWORD="" \
|
||||
GHOST_DATABASE_USER="bn_ghost" \
|
||||
GHOST_EMAIL="user@example.com" \
|
||||
GHOST_HOST="" \
|
||||
GHOST_PASSWORD="bitnami123" \
|
||||
GHOST_PORT_NUMBER="80" \
|
||||
GHOST_PROTOCOL="http" \
|
||||
GHOST_USERNAME="user" \
|
||||
LIBNSS_WRAPPER_PATH="/opt/bitnami/common/lib/libnss_wrapper.so" \
|
||||
LNAME="ghost" \
|
||||
MARIADB_HOST="mariadb" \
|
||||
MARIADB_PORT_NUMBER="3306" \
|
||||
MARIADB_ROOT_PASSWORD="" \
|
||||
MARIADB_ROOT_USER="root" \
|
||||
MYSQL_CLIENT_CREATE_DATABASE_NAME="" \
|
||||
MYSQL_CLIENT_CREATE_DATABASE_PASSWORD="" \
|
||||
MYSQL_CLIENT_CREATE_DATABASE_PRIVILEGES="ALL" \
|
||||
MYSQL_CLIENT_CREATE_DATABASE_USER="" \
|
||||
MYSQL_CLIENT_ENABLE_SSL="no" \
|
||||
MYSQL_CLIENT_SSL_CA_FILE="" \
|
||||
NAMI_PREFIX="/.nami" \
|
||||
NSS_WRAPPER_GROUP="/opt/bitnami/ghost/nss_group" \
|
||||
NSS_WRAPPER_PASSWD="/opt/bitnami/ghost/nss_passwd" \
|
||||
OS_ARCH="amd64" \
|
||||
OS_FLAVOUR="debian-10" \
|
||||
OS_NAME="linux" \
|
||||
SMTP_FROM_ADDRESS="" \
|
||||
SMTP_HOST="" \
|
||||
SMTP_PASSWORD="" \
|
||||
SMTP_PORT="" \
|
||||
SMTP_SECURE_CONNECTION="false" \
|
||||
SMTP_SERVICE="" \
|
||||
SMTP_USER="" \
|
||||
USER="ghost"
|
||||
|
||||
EXPOSE 2368 3000
|
||||
|
||||
WORKDIR /opt/bitnami/ghost
|
||||
USER 1001
|
||||
ENTRYPOINT [ "/app-entrypoint.sh" ]
|
||||
CMD [ "/run.sh" ]
|
||||
30
bitnami/ghost/4/debian-10/docker-compose.yml
Normal file
30
bitnami/ghost/4/debian-10/docker-compose.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
version: '2'
|
||||
services:
|
||||
mariadb:
|
||||
image: docker.io/bitnami/mariadb:10.3
|
||||
environment:
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
- MARIADB_USER=bn_ghost
|
||||
- MARIADB_DATABASE=bitnami_ghost
|
||||
volumes:
|
||||
- 'mariadb_data:/bitnami'
|
||||
ghost:
|
||||
image: docker.io/bitnami/ghost:4
|
||||
environment:
|
||||
- MARIADB_HOST=mariadb
|
||||
- MARIADB_PORT_NUMBER=3306
|
||||
- GHOST_DATABASE_USER=bn_ghost
|
||||
- GHOST_DATABASE_NAME=bitnami_ghost
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
- GHOST_HOST=localhost
|
||||
ports:
|
||||
- '80:2368'
|
||||
volumes:
|
||||
- 'ghost_data:/bitnami'
|
||||
depends_on:
|
||||
- mariadb
|
||||
volumes:
|
||||
mariadb_data:
|
||||
driver: local
|
||||
ghost_data:
|
||||
driver: local
|
||||
6
bitnami/ghost/4/debian-10/prebuildfs/build/bitnami-user.sh
Executable file
6
bitnami/ghost/4/debian-10/prebuildfs/build/bitnami-user.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
useradd -ms /bin/bash bitnami
|
||||
mkdir -p /opt/bitnami
|
||||
sed -i -e 's/\s*Defaults\s*secure_path\s*=/# Defaults secure_path=/' /etc/sudoers
|
||||
echo 'bitnami ALL=NOPASSWD: ALL' >> /etc/sudoers
|
||||
7
bitnami/ghost/4/debian-10/prebuildfs/build/install-nami.sh
Executable file
7
bitnami/ghost/4/debian-10/prebuildfs/build/install-nami.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
curl --silent -L https://nami-prod.s3.amazonaws.com/tools/nami/releases/nami-2.0.1-0-linux-x64.tar.gz > /tmp/nami-linux-x64.tar.gz
|
||||
echo "05e6e1e86cbb419cd80f832650ad06d97bcabca2c3a9e953e81b2674a29cc94e /tmp/nami-linux-x64.tar.gz" | sha256sum --check
|
||||
mkdir -p /opt/bitnami/nami /opt/bitnami/licenses
|
||||
tar xzf /tmp/nami-linux-x64.tar.gz --strip 1 -C /opt/bitnami/nami && rm /tmp/nami-linux-x64.tar.gz
|
||||
curl --silent -L https://raw.githubusercontent.com/bitnami/nami/master/COPYING > /opt/bitnami/licenses/nami-2.0.1-0.txt
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"ghost": {
|
||||
"arch": "amd64",
|
||||
"digest": "fb75378ec65b12c7d659fa0035b805bc14d19bb7421fb7f05e88eb665b031a3e",
|
||||
"distro": "debian-10",
|
||||
"type": "NAMI",
|
||||
"version": "4.2.0-1"
|
||||
},
|
||||
"gosu": {
|
||||
"arch": "amd64",
|
||||
"digest": "4d858ac600c38af8de454c27b7f65c0074ec3069880cb16d259a6e40a46bbc50",
|
||||
"distro": "debian-10",
|
||||
"type": "NAMI",
|
||||
"version": "1.12.0-2"
|
||||
},
|
||||
"mysql-client": {
|
||||
"arch": "amd64",
|
||||
"digest": "9398376ca9e2033d5bc193232e8aa9b57d91d4ccf06fa67bfa0d30ef36e44c25",
|
||||
"distro": "debian-10",
|
||||
"type": "NAMI",
|
||||
"version": "10.3.28-0"
|
||||
},
|
||||
"node": {
|
||||
"arch": "amd64",
|
||||
"digest": "115acb61c7b819f4733d937e81099c259e46c82f693ee32cc880db70356db285",
|
||||
"distro": "debian-10",
|
||||
"type": "NAMI",
|
||||
"version": "14.16.1-0"
|
||||
},
|
||||
"tini": {
|
||||
"arch": "amd64",
|
||||
"digest": "9b1f1c095944bac88a62c1b63f3bff1bb123aa7ccd371c908c0e5b41cec2528d",
|
||||
"distro": "debian-10",
|
||||
"type": "NAMI",
|
||||
"version": "0.19.0-1"
|
||||
}
|
||||
}
|
||||
120
bitnami/ghost/4/debian-10/prebuildfs/opt/bitnami/base/functions
Normal file
120
bitnami/ghost/4/debian-10/prebuildfs/opt/bitnami/base/functions
Normal file
@@ -0,0 +1,120 @@
|
||||
#!/bin/bash
|
||||
|
||||
[[ ${BASH_DEBUG:-false} = true ]] && set -x
|
||||
|
||||
# Constants
|
||||
MODULE="$(basename "$0")"
|
||||
BITNAMI_PREFIX=/opt/bitnami
|
||||
|
||||
# Color Palette
|
||||
RESET='\033[0m'
|
||||
BOLD='\033[1m'
|
||||
|
||||
## Foreground
|
||||
BLACK='\033[38;5;0m'
|
||||
RED='\033[38;5;1m'
|
||||
GREEN='\033[38;5;2m'
|
||||
YELLOW='\033[38;5;3m'
|
||||
BLUE='\033[38;5;4m'
|
||||
MAGENTA='\033[38;5;5m'
|
||||
CYAN='\033[38;5;6m'
|
||||
WHITE='\033[38;5;7m'
|
||||
|
||||
## Background
|
||||
ON_BLACK='\033[48;5;0m'
|
||||
ON_RED='\033[48;5;1m'
|
||||
ON_GREEN='\033[48;5;2m'
|
||||
ON_YELLOW='\033[48;5;3m'
|
||||
ON_BLUE='\033[48;5;4m'
|
||||
ON_MAGENTA='\033[48;5;5m'
|
||||
ON_CYAN='\033[48;5;6m'
|
||||
ON_WHITE='\033[48;5;7m'
|
||||
|
||||
# Functions
|
||||
|
||||
########################
|
||||
# Print to STDERR
|
||||
# Arguments:
|
||||
# Message to print
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
stderr_print() {
|
||||
printf "%b\\n" "${*}" >&2
|
||||
}
|
||||
|
||||
########################
|
||||
# Log message
|
||||
# Arguments:
|
||||
# Message to log
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
log() {
|
||||
stderr_print "${NAMI_DEBUG:+${CYAN}${MODULE:-} ${MAGENTA}$(date "+%T.%2N ")}${RESET}${*}"
|
||||
}
|
||||
########################
|
||||
# Log an 'info' message
|
||||
# Arguments:
|
||||
# Message to log
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
info() {
|
||||
log "${GREEN}INFO ${RESET} ==> ${*}"
|
||||
}
|
||||
########################
|
||||
# Log message
|
||||
# Arguments:
|
||||
# Message to log
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
warn() {
|
||||
log "${YELLOW}WARN ${RESET} ==> ${*}"
|
||||
}
|
||||
########################
|
||||
# Log an 'error' message
|
||||
# Arguments:
|
||||
# Message to log
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
error() {
|
||||
log "${RED}ERROR${RESET} ==> ${*}"
|
||||
}
|
||||
########################
|
||||
# Print the welcome page
|
||||
# Globals:
|
||||
# DISABLE_WELCOME_MESSAGE
|
||||
# BITNAMI_APP_NAME
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
print_welcome_page() {
|
||||
if [[ -z "${DISABLE_WELCOME_MESSAGE:-}" ]]; then
|
||||
if [[ -n "$BITNAMI_APP_NAME" ]]; then
|
||||
print_image_welcome_page
|
||||
fi
|
||||
fi
|
||||
}
|
||||
########################
|
||||
# Print the welcome page for a Bitnami Docker image
|
||||
# Globals:
|
||||
# BITNAMI_APP_NAME
|
||||
# Arguments:
|
||||
# None
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
print_image_welcome_page() {
|
||||
local github_url="https://github.com/bitnami/bitnami-docker-${BITNAMI_APP_NAME}"
|
||||
|
||||
log ""
|
||||
log "${BOLD}Welcome to the Bitnami ${BITNAMI_APP_NAME} container${RESET}"
|
||||
log "Subscribe to project updates by watching ${BOLD}${github_url}${RESET}"
|
||||
log "Submit issues and feature requests at ${BOLD}${github_url}/issues${RESET}"
|
||||
log ""
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
. /opt/bitnami/base/functions
|
||||
|
||||
########################
|
||||
# Helper function to initialize a single nami module
|
||||
# Arguments:
|
||||
# Module to initialize
|
||||
# Returns:
|
||||
# None
|
||||
# Description:
|
||||
# Initialize an unpacked nami module with the `nami initialize` command.
|
||||
# Command arguments can be specified as function argumnts after the module name.
|
||||
# `--log-level trace` flag is added to the command if `NAMI_DEBUG` env variable exists.
|
||||
# The log level can be overridden using the `NAMI_LOG_LEVEL` env variable.
|
||||
#########################
|
||||
nami_initialize_one() {
|
||||
local module="${1:?module not specified}"
|
||||
if nami inspect $module | grep -q '"lifecycle": "unpacked"'; then
|
||||
local inputs=
|
||||
if [[ -f "/${module}-inputs.json" ]]; then
|
||||
inputs="--inputs-file=/${module}-inputs.json"
|
||||
fi
|
||||
nami ${NAMI_DEBUG:+--log-level ${NAMI_LOG_LEVEL:-trace}} initialize $module $inputs "${@:2}"
|
||||
fi
|
||||
}
|
||||
|
||||
########################
|
||||
# Helper function to initialize one or more nami modules
|
||||
# Arguments:
|
||||
# Module to initialize
|
||||
# Returns:
|
||||
# None
|
||||
#########################
|
||||
nami_initialize() {
|
||||
local module="${1:?module not specified}"
|
||||
for module in "${@}"; do
|
||||
nami_initialize_one $module
|
||||
done
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Bitnami containers ship with software bundles. You can find the licenses under:
|
||||
/opt/bitnami/nami/COPYING
|
||||
/opt/bitnami/[name-of-bundle]/licenses/[bundle-version].txt
|
||||
222
bitnami/ghost/4/debian-10/prebuildfs/usr/sbin/bitnami-pkg
Executable file
222
bitnami/ghost/4/debian-10/prebuildfs/usr/sbin/bitnami-pkg
Executable file
@@ -0,0 +1,222 @@
|
||||
#!/bin/bash -e
|
||||
. /opt/bitnami/base/functions
|
||||
|
||||
print_usage() {
|
||||
log "Usage: bitnami-pkg <COMMAND> <PACKAGE>-<VERSION> [OPTIONS] -- [ARGS]"
|
||||
log ""
|
||||
log "Download and install Bitnami packages"
|
||||
log ""
|
||||
log "Commands:"
|
||||
log " install Download and install a package."
|
||||
log " unpack Download and unpack a package."
|
||||
log ""
|
||||
log "Options:"
|
||||
log " -b, --bucket Package release bucket (default: stacksmith)."
|
||||
log " -c, --checksum SHA256 verification checksum."
|
||||
log " -h, --help Show this help message and exit."
|
||||
log ""
|
||||
log "If the package is already available in the /tmp/bitnami/pkg/cache/"
|
||||
log "directory, the download will be skipped. If there is a corresponding"
|
||||
log "file of the same name post-fixed with .sha256 in the directory,"
|
||||
log "that sha will be used instead of the --checksum option."
|
||||
log ""
|
||||
log "Examples:"
|
||||
log " - Unpack package"
|
||||
log " \$ bitnami-pkg unpack nginx-1.9.10-0"
|
||||
log ""
|
||||
log " - Verify and Install package"
|
||||
log " \$ bitnami-pkg install nginx-1.9.10-0 --checksum 15565d06b18c2e3710fc08e579ddb3d0e39aa663264a0f7404f0743cb4cdb58d"
|
||||
log ""
|
||||
log " - Install package with arguments"
|
||||
log " \$ bitnami-pkg install mariadb-10.1.11-0 -- --password bitnami"
|
||||
log ""
|
||||
log " - Install package from testing"
|
||||
log " \$ bitnami-pkg install mariadb-10.1.11-0 --bucket testing"
|
||||
log ""
|
||||
}
|
||||
|
||||
identify_distro() {
|
||||
distro="${IMAGE_OS:-unknown}"
|
||||
if [ "${distro}" == "unknown" -a -f /etc/os-release ]; then
|
||||
distro="$(grep "^ID=" /etc/os-release | cut -d'=' -f2 | cut -d'"' -f2)-$(grep "^VERSION_ID=" /etc/os-release | cut -d'=' -f2 | cut -d'"' -f2 | cut -d'.' -f1)"
|
||||
fi
|
||||
echo "$distro"
|
||||
}
|
||||
|
||||
identify_arch() {
|
||||
local arch=$(uname -m)
|
||||
|
||||
case "${arch}" in
|
||||
ppc64le) ;;
|
||||
# no-op
|
||||
x86_64)
|
||||
case $(identify_distro) in
|
||||
debian-*)
|
||||
arch=amd64
|
||||
;;
|
||||
ubuntu-*)
|
||||
arch=amd64
|
||||
;;
|
||||
ol-*)
|
||||
arch=x86_64
|
||||
;;
|
||||
centos-*)
|
||||
arch=x86_64
|
||||
;;
|
||||
rhel-*)
|
||||
arch=x86_64
|
||||
;;
|
||||
photon-*)
|
||||
arch=x86_64
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
arch="unknown"
|
||||
;;
|
||||
esac
|
||||
echo $arch
|
||||
}
|
||||
|
||||
# break up command line for easy parsing and check legal options
|
||||
ARGS=$(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) ;;
|
||||
*)
|
||||
error "Unrecognized command: $1"
|
||||
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-$(identify_arch)-$(identify_distro)"
|
||||
PACKAGE_ARGS=${@:3}
|
||||
PACKAGE_NAME=$(echo $PACKAGE | sed 's/-[0-9].*//')
|
||||
RELEASE_BUCKET=${RELEASE_BUCKET:-stacksmith}
|
||||
|
||||
mkdir -p $INSTALL_ROOT
|
||||
cd $INSTALL_ROOT
|
||||
|
||||
info "Downloading $PACKAGE package"
|
||||
if [ -f $CACHE_ROOT/$PACKAGE.tar.gz ]; then
|
||||
info "$CACHE_ROOT/$PACKAGE.tar.gz already exists, skipping download."
|
||||
cp $CACHE_ROOT/$PACKAGE.tar.gz .
|
||||
if [ -f $CACHE_ROOT/$PACKAGE.tar.gz.sha256 ]; then
|
||||
info "Using the local sha256 from $CACHE_ROOT/$PACKAGE.tar.gz.sha256"
|
||||
PACKAGE_SHA256=$(cat $CACHE_ROOT/$PACKAGE.tar.gz.sha256)
|
||||
fi
|
||||
else
|
||||
# display cURL progress bar when a tty is attached
|
||||
if tty -s; then
|
||||
CURL_ARGS="-#"
|
||||
else
|
||||
CURL_ARGS="-sS"
|
||||
fi
|
||||
if ! curl $CURL_ARGS -LOf "https://downloads.bitnami.com/files/$RELEASE_BUCKET/$PACKAGE.tar.gz"; then
|
||||
warn "Package name '$PACKAGE' does not exist, will try '${PACKAGE%-$(identify_distro)}'..."
|
||||
if curl $CURL_ARGS -LOf "https://downloads.bitnami.com/files/$RELEASE_BUCKET/${PACKAGE%-$(identify_distro)}.tar.gz"; then
|
||||
PACKAGE="${PACKAGE%-$(identify_distro)}"
|
||||
else
|
||||
error "Could not find the requested package..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! tar tzf $PACKAGE.tar.gz >/dev/null 2>&1; then
|
||||
error "Invalid or corrupt '$PACKAGE' package."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$PACKAGE_SHA256" ]; then
|
||||
info "Verifying package integrity"
|
||||
echo "$PACKAGE_SHA256 $PACKAGE.tar.gz" | sha256sum -c -
|
||||
fi
|
||||
|
||||
# If the tarball has too many files, it can trigger a bug
|
||||
# in overlayfs when using tar. Install bsdtar in the container image
|
||||
# to workaround it. As the overhead is too big (~40 MB), it is not added by
|
||||
# default. Source: https://github.com/coreos/bugs/issues/1095
|
||||
if which bsdtar >/dev/null 2>&1; then
|
||||
bsdtar -xf $PACKAGE.tar.gz
|
||||
else
|
||||
tar xzf $PACKAGE.tar.gz
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
install) info "Installing $PACKAGE" ;;
|
||||
unpack) info "Unpacking $PACKAGE" ;;
|
||||
esac
|
||||
|
||||
nami $1 $PACKAGE $PACKAGE_ARGS
|
||||
|
||||
if [[ $PACKAGE =~ git-.* ]]; then
|
||||
# Due to a nami unpack issue, git binaries are copied instead of using hard symlinks.
|
||||
# This workaround overwrites these binaries with the original ones, preserving links
|
||||
# and saving ~500 MB
|
||||
info "Patching ${PACKAGE}"
|
||||
cp -a --force "${INSTALL_ROOT}/${PACKAGE}/files/git/." "/opt/bitnami/git"
|
||||
fi
|
||||
|
||||
rm -rf $INSTALL_ROOT
|
||||
|
||||
if [ "$BITNAMI_PKG_EXTRA_DIRS" ]; then
|
||||
info "Creating extra directories"
|
||||
for i in ${BITNAMI_PKG_EXTRA_DIRS}; do
|
||||
mkdir -p $i
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "$BITNAMI_PKG_CHMOD" ]; then
|
||||
DIRS="/.nami /bitnami $BITNAMI_PKG_EXTRA_DIRS"
|
||||
if ! [[ $PACKAGE_NAME =~ .*-client ]]; then
|
||||
mkdir -p /bitnami/$PACKAGE_NAME
|
||||
fi
|
||||
# We need to be in $HOME in order to nami inspect works
|
||||
cd $HOME
|
||||
DIRS+=" $(nami inspect $PACKAGE_NAME | grep -e '"installdir"' | cut -f4 -d\")"
|
||||
info "Fixing permissions: chmod $BITNAMI_PKG_CHMOD $DIRS"
|
||||
chmod $BITNAMI_PKG_CHMOD $DIRS
|
||||
fi
|
||||
24
bitnami/ghost/4/debian-10/prebuildfs/usr/sbin/install_packages
Executable file
24
bitnami/ghost/4/debian-10/prebuildfs/usr/sbin/install_packages
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
set -u
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
n=0
|
||||
max=2
|
||||
until [ $n -gt $max ]; do
|
||||
set +e
|
||||
(
|
||||
apt-get update -qq &&
|
||||
apt-get install -y --no-install-recommends "$@"
|
||||
)
|
||||
CODE=$?
|
||||
set -e
|
||||
if [ $CODE -eq 0 ]; then
|
||||
break
|
||||
fi
|
||||
if [ $n -eq $max ]; then
|
||||
exit $CODE
|
||||
fi
|
||||
echo "apt failed, retrying"
|
||||
n=$(($n + 1))
|
||||
done
|
||||
rm -r /var/lib/apt/lists /var/cache/apt/archives
|
||||
21
bitnami/ghost/4/debian-10/rootfs/app-entrypoint.sh
Executable file
21
bitnami/ghost/4/debian-10/rootfs/app-entrypoint.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
. /opt/bitnami/base/functions
|
||||
. /opt/bitnami/base/helpers
|
||||
|
||||
print_welcome_page
|
||||
|
||||
if [[ "$1" == "nami" && "$2" == "start" ]] || [[ "$1" == "/run.sh" ]]; then
|
||||
. /init.sh
|
||||
if [ ! $EUID -eq 0 ] && [ -e "$LIBNSS_WRAPPER_PATH" ]; then
|
||||
echo "ghost:x:$(id -u):$(id -g):Ghost:/opt/bitnami/ghost:/bin/false" > "$NSS_WRAPPER_PASSWD"
|
||||
echo "ghost:x:$(id -g):" > "$NSS_WRAPPER_GROUP"
|
||||
|
||||
export LD_PRELOAD="$LIBNSS_WRAPPER_PATH"
|
||||
fi
|
||||
|
||||
nami_initialize mysql-client ghost
|
||||
info "Starting ghost... "
|
||||
fi
|
||||
|
||||
exec tini -- "$@"
|
||||
21
bitnami/ghost/4/debian-10/rootfs/ghost-inputs.json
Normal file
21
bitnami/ghost/4/debian-10/rootfs/ghost-inputs.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"blogTitle": "{{$global.env.BLOG_TITLE}}",
|
||||
"databaseName": "{{$global.env.GHOST_DATABASE_NAME}}",
|
||||
"databasePassword": "{{$global.env.GHOST_DATABASE_PASSWORD}}",
|
||||
"databaseServerHost": "{{$global.env.MARIADB_HOST}}",
|
||||
"databaseServerPort": "{{$global.env.MARIADB_PORT_NUMBER}}",
|
||||
"databaseUser": "{{$global.env.GHOST_DATABASE_USER}}",
|
||||
"email": "{{$global.env.GHOST_EMAIL}}",
|
||||
"host": "{{$global.env.GHOST_HOST}}",
|
||||
"password": "{{$global.env.GHOST_PASSWORD}}",
|
||||
"port": "{{$global.env.GHOST_PORT_NUMBER}}",
|
||||
"protocol": "{{$global.env.GHOST_PROTOCOL}}",
|
||||
"smtpFromAddress": "{{$global.env.SMTP_FROM_ADDRESS}}",
|
||||
"smtpHost": "{{$global.env.SMTP_HOST}}",
|
||||
"smtpPassword": "{{$global.env.SMTP_PASSWORD}}",
|
||||
"smtpPort": "{{$global.env.SMTP_PORT}}",
|
||||
"smtpSecureConnection": "{{$global.env.SMTP_SECURE_CONNECTION}}",
|
||||
"smtpService": "{{$global.env.SMTP_SERVICE}}",
|
||||
"smtpUser": "{{$global.env.SMTP_USER}}",
|
||||
"username": "{{$global.env.GHOST_USERNAME}}"
|
||||
}
|
||||
31
bitnami/ghost/4/debian-10/rootfs/init.sh
Executable file
31
bitnami/ghost/4/debian-10/rootfs/init.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
##
|
||||
## @brief Helper function to show an error when a password is empty and exit
|
||||
## param $1 Input name
|
||||
##
|
||||
empty_password_error() {
|
||||
error "The $1 environment variable is empty or not set. Set the environment variable ALLOW_EMPTY_PASSWORD=yes to allow the container to be started with blank passwords. This is recommended only for development."
|
||||
exit 1
|
||||
}
|
||||
|
||||
##
|
||||
## @brief Helper function to show a warning when the ALLOW_EMPTY_PASSWORD flag is enabled
|
||||
##
|
||||
empty_password_enabled_warn() {
|
||||
warn "You set the environment variable ALLOW_EMPTY_PASSWORD=${ALLOW_EMPTY_PASSWORD}. For safety reasons, do not use this flag in a production environment."
|
||||
}
|
||||
|
||||
# Validate passwords
|
||||
if [[ "$ALLOW_EMPTY_PASSWORD" =~ ^(yes|Yes|YES)$ ]]; then
|
||||
empty_password_enabled_warn
|
||||
else
|
||||
# Database creation by MySQL client
|
||||
if [[ -n "$MYSQL_CLIENT_CREATE_DATABASE_USER" && -z "$MYSQL_CLIENT_CREATE_DATABASE_PASSWORD" ]]; then
|
||||
empty_password_error MYSQL_CLIENT_CREATE_DATABASE_PASSWORD
|
||||
fi
|
||||
# Ghost database
|
||||
if [[ -z "$GHOST_DATABASE_PASSWORD" ]]; then
|
||||
empty_password_error GHOST_DATABASE_PASSWORD
|
||||
fi
|
||||
fi
|
||||
13
bitnami/ghost/4/debian-10/rootfs/mysql-client-inputs.json
Normal file
13
bitnami/ghost/4/debian-10/rootfs/mysql-client-inputs.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"allowEmptyPassword": "{{$global.env.ALLOW_EMPTY_PASSWORD}}",
|
||||
"createDatabaseName": "{{$global.env.MYSQL_CLIENT_CREATE_DATABASE_NAME}}",
|
||||
"createDatabasePassword": "{{$global.env.MYSQL_CLIENT_CREATE_DATABASE_PASSWORD}}",
|
||||
"createDatabasePrivileges": "{{$global.env.MYSQL_CLIENT_CREATE_DATABASE_PRIVILEGES}}",
|
||||
"createDatabaseUser": "{{$global.env.MYSQL_CLIENT_CREATE_DATABASE_USER}}",
|
||||
"host": "{{$global.env.MARIADB_HOST}}",
|
||||
"port": "{{$global.env.MARIADB_PORT_NUMBER}}",
|
||||
"rootPassword": "{{$global.env.MARIADB_ROOT_PASSWORD}}",
|
||||
"rootUser": "{{$global.env.MARIADB_ROOT_USER}}",
|
||||
"sslCAFile": "{{$global.env.MYSQL_CLIENT_SSL_CA_FILE}}",
|
||||
"sslEnable": "{{$global.env.MYSQL_CLIENT_ENABLE_SSL}}"
|
||||
}
|
||||
20
bitnami/ghost/4/debian-10/rootfs/run.sh
Executable file
20
bitnami/ghost/4/debian-10/rootfs/run.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
. /opt/bitnami/base/functions
|
||||
. /opt/bitnami/base/helpers
|
||||
|
||||
USER=ghost
|
||||
|
||||
START_COMMAND="ghost start && ghost log -f"
|
||||
export NODE_ENV=production
|
||||
|
||||
cd /opt/bitnami/ghost || exit 1
|
||||
|
||||
# If container is started as `root` user
|
||||
if [ $EUID -eq 0 ]; then
|
||||
exec gosu ${USER} bash -c "${START_COMMAND}"
|
||||
else
|
||||
exec bash -c "$START_COMMAND"
|
||||
fi
|
||||
@@ -42,6 +42,7 @@ To run this application you need Docker Engine 1.10.0. Docker Compose is recomen
|
||||
Learn more about the Bitnami tagging policy and the difference between rolling tags and immutable tags [in our documentation page](https://docs.bitnami.com/tutorials/understand-rolling-tags-containers/).
|
||||
|
||||
|
||||
* [`4`, `4-debian-10`, `4.2.0`, `4.2.0-debian-10-r0` (4/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-ghost/blob/4.2.0-debian-10-r0/4/debian-10/Dockerfile)
|
||||
* [`3`, `3-debian-10`, `3.42.4`, `3.42.4-debian-10-r14`, `latest` (3/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-ghost/blob/3.42.4-debian-10-r14/3/debian-10/Dockerfile)
|
||||
|
||||
Subscribe to project updates by watching the [bitnami/ghost GitHub repo](https://github.com/bitnami/bitnami-docker-ghost).
|
||||
|
||||
Reference in New Issue
Block a user