mirror of
https://github.com/bitnami/containers.git
synced 2026-02-19 05:27:22 +08:00
9.0.0-debian-10-r0 release
This commit is contained in:
56
bitnami/drupal-nginx/9/debian-10/Dockerfile
Normal file
56
bitnami/drupal-nginx/9/debian-10/Dockerfile
Normal file
@@ -0,0 +1,56 @@
|
||||
FROM docker.io/bitnami/minideb:buster
|
||||
LABEL maintainer "Bitnami <containers@bitnami.com>"
|
||||
|
||||
ENV PATH="/opt/bitnami/php/bin:/opt/bitnami/php/sbin:/opt/bitnami/nginx/sbin:/opt/bitnami/mysql/bin:/opt/bitnami/common/bin:/opt/bitnami/drupal/vendor/bin:/opt/bitnami/nami/bin:$PATH"
|
||||
|
||||
COPY prebuildfs /
|
||||
# Install required system packages and dependencies
|
||||
RUN install_packages ca-certificates curl dirmngr gnupg gzip libaudit1 libbsd0 libbz2-1.0 libc6 libcap-ng0 libcom-err2 libcurl4 libexpat1 libffi6 libfftw3-double3 libfontconfig1 libfreetype6 libgcc1 libgcrypt20 libgeoip1 libglib2.0-0 libgmp10 libgnutls30 libgomp1 libgpg-error0 libgssapi-krb5-2 libhogweed4 libicu63 libidn2-0 libjemalloc2 libjpeg62-turbo libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 liblcms2-2 libldap-2.4-2 liblqr-1-0 libltdl7 liblzma5 libmagickcore-6.q16-6 libmagickwand-6.q16-6 libmcrypt4 libmemcached11 libmemcachedutil2 libncurses6 libnettle6 libnghttp2-14 libp11-kit0 libpam0g libpcre3 libpng16-16 libpq5 libpsl5 libreadline7 librtmp1 libsasl2-2 libssh2-1 libssl1.1 libstdc++6 libsybdb5 libtasn1-6 libtidy5deb1 libtinfo6 libunistring2 libuuid1 libx11-6 libxau6 libxcb1 libxdmcp6 libxext6 libxml2 libxslt1.1 libzip4 procps sudo tar zlib1g
|
||||
RUN /build/bitnami-user.sh
|
||||
RUN /build/install-nami.sh
|
||||
RUN bitnami-pkg unpack php-7.3.19-0 --checksum 8799bc6c2565c4e9010756915de8f250a1f989df33794395f6ea1abc85bbf4b1
|
||||
RUN bitnami-pkg unpack nginx-1.18.0-1 --checksum 4ba415b4511382484b860de346f9109d6d734c0331754e9d8486d65e2e25aaab
|
||||
RUN bitnami-pkg unpack mysql-client-10.3.23-0 --checksum 7af3cead7a38670bed924fbc99e20c67f6244bb5a92642adb4ab6cd307aa9a5e
|
||||
RUN bitnami-pkg install tini-0.19.0-0 --checksum 9a8ae20be31a518f042fcec359f2cf35bfdb4e2a56f2fa8ff9ef2ecaf45da80c
|
||||
RUN bitnami-pkg install gosu-1.12.0-0 --checksum 582d501eeb6b338a24f417fededbf14295903d6be55c52d66c52e616c81bcd8c
|
||||
RUN bitnami-pkg unpack drupal-9.0.0-0 --checksum 43fcc9203756c6a1b653cb97da69eef26bfc1e21549752499eb5475e0e64119e
|
||||
RUN apt-get update && apt-get upgrade -y && \
|
||||
rm -r /var/lib/apt/lists /var/cache/apt/archives
|
||||
RUN ln -sf /dev/stdout /opt/bitnami/nginx/logs/access.log
|
||||
RUN ln -sf /dev/stderr /opt/bitnami/nginx/logs/error.log
|
||||
|
||||
COPY rootfs /
|
||||
ENV ALLOW_EMPTY_PASSWORD="no" \
|
||||
BITNAMI_APP_NAME="drupal-nginx" \
|
||||
BITNAMI_IMAGE_VERSION="9.0.0-debian-10-r0" \
|
||||
DRUPAL_DATABASE_NAME="bitnami_drupal" \
|
||||
DRUPAL_DATABASE_PASSWORD="" \
|
||||
DRUPAL_DATABASE_USER="bn_drupal" \
|
||||
DRUPAL_EMAIL="user@example.com" \
|
||||
DRUPAL_HTTPS_PORT="443" \
|
||||
DRUPAL_HTTP_PORT="80" \
|
||||
DRUPAL_PASSWORD="bitnami" \
|
||||
DRUPAL_PROFILE="standard" \
|
||||
DRUPAL_USERNAME="user" \
|
||||
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="" \
|
||||
NGINX_ENABLE_CUSTOM_PORTS="no" \
|
||||
NGINX_HTTPS_PORT_NUMBER="443" \
|
||||
NGINX_HTTP_PORT_NUMBER="80" \
|
||||
OS_ARCH="amd64" \
|
||||
OS_FLAVOUR="debian-10" \
|
||||
OS_NAME="linux" \
|
||||
PHP_MEMORY_LIMIT="256M"
|
||||
|
||||
EXPOSE 80 443
|
||||
|
||||
ENTRYPOINT [ "/app-entrypoint.sh" ]
|
||||
CMD [ "/run.sh" ]
|
||||
32
bitnami/drupal-nginx/9/debian-10/docker-compose.yml
Normal file
32
bitnami/drupal-nginx/9/debian-10/docker-compose.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
image: 'docker.io/bitnami/mariadb:10.3-debian-10'
|
||||
environment:
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
- MARIADB_USER=bn_drupal
|
||||
- MARIADB_DATABASE=bitnami_drupal
|
||||
volumes:
|
||||
- 'mariadb_data:/bitnami'
|
||||
drupal:
|
||||
image: 'docker.io/bitnami/drupal-nginx:9-debian-10'
|
||||
environment:
|
||||
- MARIADB_HOST=mariadb
|
||||
- MARIADB_PORT_NUMBER=3306
|
||||
- DRUPAL_DATABASE_USER=bn_drupal
|
||||
- DRUPAL_DATABASE_NAME=bitnami_drupal
|
||||
- ALLOW_EMPTY_PASSWORD=yes
|
||||
ports:
|
||||
- '80:80'
|
||||
- '443:443'
|
||||
volumes:
|
||||
- 'drupal_data:/bitnami/drupal'
|
||||
- './drupal-server-block.conf:/opt/bitnami/nginx/conf/server_blocks/drupal-server-block.conf'
|
||||
depends_on:
|
||||
- mariadb
|
||||
volumes:
|
||||
mariadb_data:
|
||||
driver: local
|
||||
drupal_data:
|
||||
driver: local
|
||||
85
bitnami/drupal-nginx/9/debian-10/drupal-server-block.conf
Normal file
85
bitnami/drupal-nginx/9/debian-10/drupal-server-block.conf
Normal file
@@ -0,0 +1,85 @@
|
||||
server {
|
||||
listen 0.0.0.0:80;
|
||||
server_name myapp.example.com;
|
||||
|
||||
root /opt/bitnami/drupal;
|
||||
|
||||
location = /favicon.ico {
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location = /robots.txt {
|
||||
allow all;
|
||||
log_not_found off;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location ~ ^/sites/.*/private/ {
|
||||
return 403;
|
||||
}
|
||||
|
||||
# Block access to scripts in site files directory
|
||||
location ~ ^/sites/[^/]+/files/.*\.php$ {
|
||||
deny all;
|
||||
}
|
||||
|
||||
# Allow "Well-Known URIs" as per RFC 5785
|
||||
location ~* ^/.well-known/ {
|
||||
allow all;
|
||||
}
|
||||
|
||||
# Block access to "hidden" files and directories whose names begin with a
|
||||
# period. This includes directories used by version control systems such
|
||||
# as Subversion or Git to store control files.
|
||||
location ~ (^|/)\. {
|
||||
return 403;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri /index.php?$query_string;
|
||||
}
|
||||
|
||||
location @rewrite {
|
||||
rewrite ^/(.*)$ /index.php?q=$1;
|
||||
}
|
||||
|
||||
# Don't allow direct access to PHP files in the vendor directory.
|
||||
location ~ /vendor/.*\.php$ {
|
||||
deny all;
|
||||
return 404;
|
||||
}
|
||||
|
||||
# The laxer rule will continue to work if Drupal uses this new URL
|
||||
# pattern with front controllers other than update.php in a future
|
||||
# release.
|
||||
location ~ \.php(/|$) {
|
||||
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
|
||||
include fastcgi_params;
|
||||
# Block httpoxy attacks. See https://httpoxy.org/.
|
||||
fastcgi_param HTTP_PROXY "";
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||
fastcgi_param QUERY_STRING $query_string;
|
||||
fastcgi_intercept_errors on;
|
||||
# PHP 7 socket location.
|
||||
fastcgi_pass localhost:9000;
|
||||
}
|
||||
|
||||
# Fighting with Styles? This little gem is amazing.
|
||||
location ~ ^/sites/.*/files/styles/ {
|
||||
try_files $uri @rewrite;
|
||||
}
|
||||
|
||||
# Handle private files through Drupal. Private file's path can come
|
||||
# with a language prefix.
|
||||
location ~ ^(/[a-z\-]+)?/system/files/ {
|
||||
try_files $uri /index.php?$query_string;
|
||||
}
|
||||
|
||||
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
|
||||
try_files $uri @rewrite;
|
||||
expires max;
|
||||
log_not_found off;
|
||||
}
|
||||
}
|
||||
6
bitnami/drupal-nginx/9/debian-10/prebuildfs/build/bitnami-user.sh
Executable file
6
bitnami/drupal-nginx/9/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/drupal-nginx/9/debian-10/prebuildfs/build/install-nami.sh
Executable file
7
bitnami/drupal-nginx/9/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.0-0-linux-x64.tar.gz > /tmp/nami-linux-x64.tar.gz
|
||||
echo "63e836f3d752cb157b175e1efe2238e5b4e04ab139097c682ca5a0651f0df65c /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.0-0.txt
|
||||
@@ -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 overriden 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
|
||||
215
bitnami/drupal-nginx/9/debian-10/prebuildfs/usr/sbin/bitnami-pkg
Executable file
215
bitnami/drupal-nginx/9/debian-10/prebuildfs/usr/sbin/bitnami-pkg
Executable file
@@ -0,0 +1,215 @@
|
||||
#!/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
|
||||
;;
|
||||
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
|
||||
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
|
||||
|
||||
# Include metadata about the package
|
||||
touch "${BITNAMI_PREFIX}/.bitnami_packages"
|
||||
echo "${PACKAGE}" >> "${BITNAMI_PREFIX}/.bitnami_packages"
|
||||
24
bitnami/drupal-nginx/9/debian-10/prebuildfs/usr/sbin/install_packages
Executable file
24
bitnami/drupal-nginx/9/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
|
||||
15
bitnami/drupal-nginx/9/debian-10/rootfs/app-entrypoint.sh
Executable file
15
bitnami/drupal-nginx/9/debian-10/rootfs/app-entrypoint.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
. /opt/bitnami/base/functions
|
||||
. /opt/bitnami/base/helpers
|
||||
|
||||
print_welcome_page
|
||||
|
||||
if [[ "$1" == "nami" && "$2" == "start" ]] || [[ "$1" == "/run.sh" ]]; then
|
||||
. /drupal-init.sh
|
||||
nami_initialize php nginx mysql-client drupal
|
||||
info "Starting drupal... "
|
||||
. /post-init.sh
|
||||
fi
|
||||
|
||||
exec tini -- "$@"
|
||||
31
bitnami/drupal-nginx/9/debian-10/rootfs/drupal-init.sh
Executable file
31
bitnami/drupal-nginx/9/debian-10/rootfs/drupal-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
|
||||
# Drupal database
|
||||
if [[ -z "$DRUPAL_DATABASE_PASSWORD" ]]; then
|
||||
empty_password_error DRUPAL_DATABASE_PASSWORD
|
||||
fi
|
||||
fi
|
||||
14
bitnami/drupal-nginx/9/debian-10/rootfs/drupal-inputs.json
Normal file
14
bitnami/drupal-nginx/9/debian-10/rootfs/drupal-inputs.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"databaseName": "{{$global.env.DRUPAL_DATABASE_NAME}}",
|
||||
"databasePassword": "{{$global.env.DRUPAL_DATABASE_PASSWORD}}",
|
||||
"databaseServerHost": "{{$global.env.MARIADB_HOST}}",
|
||||
"databaseServerPort": "{{$global.env.MARIADB_PORT_NUMBER}}",
|
||||
"databaseUser": "{{$global.env.DRUPAL_DATABASE_USER}}",
|
||||
"email": "{{$global.env.DRUPAL_EMAIL}}",
|
||||
"httpPort": "{{$global.env.DRUPAL_HTTP_PORT}}",
|
||||
"httpsPort": "{{$global.env.DRUPAL_HTTPS_PORT}}",
|
||||
"installationProfile": "{{$global.env.DRUPAL_PROFILE}}",
|
||||
"password": "{{$global.env.DRUPAL_PASSWORD}}",
|
||||
"phpMemoryLimit": "{{$global.env.PHP_MEMORY_LIMIT}}",
|
||||
"username": "{{$global.env.DRUPAL_USERNAME}}"
|
||||
}
|
||||
36
bitnami/drupal-nginx/9/debian-10/rootfs/init.sh
Executable file
36
bitnami/drupal-nginx/9/debian-10/rootfs/init.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/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
|
||||
# Drupal database
|
||||
if [[ -z "$DRUPAL_DATABASE_PASSWORD" ]]; then
|
||||
empty_password_error DRUPAL_DATABASE_PASSWORD
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check whether custom NGINX ports must be configured
|
||||
if [[ -n "${NGINX_HTTP_PORT_NUMBER:-}" || -n "${NGINX_HTTPS_PORT_NUMBER:-}" ]]; then
|
||||
export NGINX_ENABLE_CUSTOM_PORTS="yes"
|
||||
fi
|
||||
@@ -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}}"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"enableCustomPorts": "{{$global.env.NGINX_ENABLE_CUSTOM_PORTS}}",
|
||||
"httpPort": "{{$global.env.NGINX_HTTP_PORT_NUMBER}}",
|
||||
"httpsPort": "{{$global.env.NGINX_HTTPS_PORT_NUMBER}}"
|
||||
}
|
||||
21
bitnami/drupal-nginx/9/debian-10/rootfs/post-init.d/php.sh
Executable file
21
bitnami/drupal-nginx/9/debian-10/rootfs/post-init.d/php.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Post-init script to execute PHP files
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
# set -o xtrace # Uncomment this line for debugging purposes
|
||||
|
||||
. /opt/bitnami/base/functions
|
||||
|
||||
readonly f="${1:?missing PHP file}"
|
||||
failure=0
|
||||
|
||||
if [[ "$f" == *".php" ]]; then
|
||||
info "Executing $f with PHP interpreter"
|
||||
php "$f" || failure=$?
|
||||
fi
|
||||
if [[ "$failure" -ne 0 ]]; then
|
||||
error "Failed to execute ${f}"
|
||||
exit "$failure"
|
||||
fi
|
||||
24
bitnami/drupal-nginx/9/debian-10/rootfs/post-init.d/shell.sh
Executable file
24
bitnami/drupal-nginx/9/debian-10/rootfs/post-init.d/shell.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Post-init script to execute Shell files
|
||||
|
||||
# shellcheck disable=SC1090,SC1091
|
||||
|
||||
# set -o xtrace # Uncomment this line for debugging purposes
|
||||
|
||||
. /opt/bitnami/base/functions
|
||||
|
||||
readonly f="${1:?missing SHELL file}"
|
||||
failure=0
|
||||
|
||||
if [[ "$f" == *".sh" ]]; then
|
||||
if [[ -x "$f" ]]; then
|
||||
info "Executing $f"; "$f" || failure=$?
|
||||
else
|
||||
info "Sourcing $f"; . "$f"
|
||||
fi
|
||||
fi
|
||||
if [[ "$failure" -ne 0 ]]; then
|
||||
error "Failed to execute ${f}"
|
||||
exit "$failure"
|
||||
fi
|
||||
29
bitnami/drupal-nginx/9/debian-10/rootfs/post-init.d/sql-mysql.sh
Executable file
29
bitnami/drupal-nginx/9/debian-10/rootfs/post-init.d/sql-mysql.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Post-init script to execute SQL files with MySQL client
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
# set -o xtrace # Uncomment this line for debugging purposes
|
||||
|
||||
. /opt/bitnami/base/functions
|
||||
|
||||
readonly f="${1:?missing SQL file}"
|
||||
failure=0
|
||||
|
||||
if [[ "$f" =~ ^.*(\.sql|\.sql\.gz)$ ]]; then
|
||||
info "Executing $f"
|
||||
mysql_cmd=( mysql -h "$MARIADB_HOST" -P "$MARIADB_PORT_NUMBER" -u "$MARIADB_ROOT_USER" )
|
||||
if [[ "${ALLOW_EMPTY_PASSWORD:-no}" != "yes" ]]; then
|
||||
mysql_cmd+=( -p"$MARIADB_ROOT_PASSWORD" )
|
||||
fi
|
||||
if [[ "$f" == *".sql" ]]; then
|
||||
"${mysql_cmd[@]}" < "$f" || failure=$?
|
||||
elif [[ "$f" == *".sql.gz" ]]; then
|
||||
gunzip -c "$f" | "${mysql_cmd[@]}" || failure=$?
|
||||
fi
|
||||
fi
|
||||
if [[ "$failure" -ne 0 ]]; then
|
||||
error "Failed to execute ${f}"
|
||||
exit "$failure"
|
||||
fi
|
||||
15
bitnami/drupal-nginx/9/debian-10/rootfs/post-init.sh
Normal file
15
bitnami/drupal-nginx/9/debian-10/rootfs/post-init.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
# set -o xtrace # Uncomment this line for debugging purposes
|
||||
|
||||
. /opt/bitnami/base/functions
|
||||
|
||||
if [[ -d /docker-entrypoint-init.d ]] && [[ ! -f "/bitnami/drupal-nginx/.user_scripts_initialized" ]]; then
|
||||
for f in /docker-entrypoint-init.d/*; do
|
||||
for p in /post-init.d/*.sh; do
|
||||
"$p" "$f"
|
||||
done
|
||||
done
|
||||
info "Custom scripts were executed"
|
||||
touch "/bitnami/drupal-nginx/.user_scripts_initialized"
|
||||
fi
|
||||
19
bitnami/drupal-nginx/9/debian-10/rootfs/run.sh
Executable file
19
bitnami/drupal-nginx/9/debian-10/rootfs/run.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
. /opt/bitnami/base/functions
|
||||
. /opt/bitnami/base/helpers
|
||||
|
||||
_forwardTerm () {
|
||||
echo "Caught signal SIGTERM, passing it to child processes..."
|
||||
pgrep -P $$ | xargs kill -15 2>/dev/null
|
||||
wait
|
||||
exit $?
|
||||
}
|
||||
|
||||
trap _forwardTerm TERM
|
||||
|
||||
info "Starting PHP-FPM..."
|
||||
su daemon -s /bin/bash -c "/opt/bitnami/php/sbin/php-fpm -F --pid /opt/bitnami/php/tmp/php-fpm.pid --fpm-config /opt/bitnami/php/etc/php-fpm.conf --prefix /opt/bitnami/php -c /opt/bitnami/php/etc/php.ini" &
|
||||
|
||||
info "Starting NGINX..."
|
||||
exec nginx -c /opt/bitnami/nginx/conf/nginx.conf -g "daemon off;"
|
||||
@@ -10,7 +10,7 @@ services:
|
||||
volumes:
|
||||
- 'mariadb_data:/bitnami'
|
||||
drupal:
|
||||
image: 'docker.io/bitnami/drupal-nginx:8-debian-10'
|
||||
image: 'docker.io/bitnami/drupal-nginx:9-debian-10'
|
||||
environment:
|
||||
- MARIADB_HOST=mariadb
|
||||
- MARIADB_PORT_NUMBER=3306
|
||||
|
||||
Reference in New Issue
Block a user