8.4.2-r1 release

Drupal expects an existing database to be configured with.
This commit is contained in:
Bitnami Bot 2017-11-21 15:18:26 +00:00
parent 305e3d5469
commit d8d3a4556f
8 changed files with 132 additions and 26 deletions

View File

@ -5,24 +5,32 @@ LABEL maintainer "Bitnami <containers@bitnami.com>"
RUN install_packages libapr1 libaprutil1 libbz2-1.0 libc6 libcomerr2 libcurl3 libexpat1 libffi6 libfreetype6 libgcc1 libgcrypt20 libgmp10 libgnutls-deb0-28 libgpg-error0 libgssapi-krb5-2 libhogweed2 libicu52 libidn11 libjpeg62-turbo libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2 liblzma5 libmcrypt4 libncurses5 libnettle4 libp11-kit0 libpcre3 libpng12-0 libpq5 libreadline6 librtmp1 libsasl2-2 libssh2-1 libssl1.0.0 libstdc++6 libsybdb5 libtasn1-6 libtidy-0.99-0 libtinfo5 libuuid1 libxml2 libxslt1.1 zlib1g
RUN bitnami-pkg unpack apache-2.4.29-0 --checksum 38af9f5ee6088655536238d9f70f4ce7fd6047e1c84fd5b02fa351efbc4f60c6
RUN bitnami-pkg unpack php-7.0.25-0 --checksum 06b7eec17da189e1d7c4768d2a8ccc22aeae42b2261af52956c49f32840910ac
RUN bitnami-pkg install mysql-client-10.1.28-0 --checksum 8a0ccfd6a62ffccdb25fcf39754c2526b120f416dd390194e8d6edd2ec8ddcee
RUN bitnami-pkg unpack mysql-client-10.1.29-0 --checksum 4b29436697f5fcdf38f3c9713a27208304fe36b858afc5aa5a7a4d3f17d84bac
RUN bitnami-pkg install libphp-7.0.25-0 --checksum 830adc5002b70b4000921b85590ef70390189e1b7b498e4c71515c9ba8af2a70
RUN bitnami-pkg install drush-8.1.15-0 --checksum 3f3b9931aebc37c5a63dc6bc2ae1657dc0152054b787e64cd19b33a9e56024c3
RUN bitnami-pkg unpack drupal-8.4.2-0 --checksum 26f870a2822d13d71a35c9d9eede244b03bb1117bce584627f1c497829a57b40
RUN bitnami-pkg unpack drupal-8.4.2-1 --checksum 7c86389c5bea5584bf8298da5e2dd2ad98d8c20685a966dbc82d88b53411f943
COPY rootfs /
ENV APACHE_HTTPS_PORT_NUMBER="443" \
ENV ALLOW_EMPTY_PASSWORD="no" \
APACHE_HTTPS_PORT_NUMBER="443" \
APACHE_HTTP_PORT_NUMBER="80" \
BITNAMI_APP_NAME="drupal" \
BITNAMI_IMAGE_VERSION="8.4.2-r0" \
BITNAMI_IMAGE_VERSION="8.4.2-r1" \
DRUPAL_DATABASE_NAME="bitnami_drupal" \
DRUPAL_DATABASE_PASSWORD="" \
DRUPAL_DATABASE_USER="bn_drupal" \
DRUPAL_EMAIL="user@example.com" \
DRUPAL_PASSWORD="bitnami" \
DRUPAL_USERNAME="user" \
MARIADB_HOST="mariadb" \
MARIADB_PASSWORD="" \
MARIADB_PORT_NUMBER="3306" \
MARIADB_USER="root" \
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="" \
PATH="/opt/bitnami/apache/bin:/opt/bitnami/php/bin:/opt/bitnami/mysql/bin:/opt/bitnami/drush:$PATH"
EXPOSE 80 443

View File

@ -5,12 +5,20 @@ services:
image: 'bitnami/mariadb:latest'
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_drupal
- MARIADB_DATABASE=bitnami_drupal
volumes:
- 'mariadb_data:/bitnami'
drupal:
image: 'bitnami/drupal:8'
labels:
kompose.service.type: nodeport
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'

View File

@ -6,7 +6,8 @@
print_welcome_page
if [[ "$1" == "nami" && "$2" == "start" ]] || [[ "$1" == "/run.sh" ]]; then
nami_initialize apache php drupal
. /init.sh
nami_initialize apache php mysql-client drupal
info "Starting drupal... "
fi

View File

@ -1,8 +1,9 @@
{
"databaseAdminPassword": "{{$global.env.MARIADB_PASSWORD}}",
"databaseAdminUser": "{{$global.env.MARIADB_USER}}",
"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}}",
"password": "{{$global.env.DRUPAL_PASSWORD}}",
"username": "{{$global.env.DRUPAL_USERNAME}}"

View File

@ -0,0 +1,29 @@
##
## @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

View File

@ -0,0 +1,11 @@
{
"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}}"
}

View File

@ -57,11 +57,20 @@ services:
image: 'bitnami/mariadb:latest'
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_drupal
- MARIADB_DATABASE=bitnami_drupal
volumes:
- 'mariadb_data:/bitnami'
drupal:
image: 'bitnami/drupal:latest'
image: 'bitnami/drupal:8'
labels:
kompose.service.type: nodeport
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'
@ -69,7 +78,6 @@ services:
- 'drupal_data:/bitnami'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
@ -87,21 +95,33 @@ If you want to run the application manually instead of using docker-compose, the
$ docker network create drupal-tier
```
2. Start a MariaDB database in the network generated:
2. Create a volume for MariaDB persistence and create a MariaDB container
```bash
$ docker run -d --name mariadb -e ALLOW_EMPTY_PASSWORD=yes --net drupal-tier bitnami/mariadb:latest
$ docker volume create --name mariadb_data
$ docker run -d --name mariadb \
-e ALLOW_EMPTY_PASSWORD=yes \
-e MARIADB_USER=bn_drupal \
-e MARIADB_DATABASE=bitnami_drupal \
--net drupal-tier \
--volume mariadb_data:/bitnami \
bitnami/mariadb:latest
```
*Note:* You need to give the container a name in order to Drupal to resolve the host
3. Run the Drupal container:
3. Create volumes for Drupal persistence and launch the container
```bash
$ docker run -d -p 80:80 -p 443:443 --name drupal --net drupal-tier bitnami/drupal:latest
$ docker volume create --name drupal_data
$ docker run -d --name drupal -p 80:80 -p 443:443 \
-e ALLOW_EMPTY_PASSWORD=yes \
-e DRUPAL_DATABASE_USER=bn_drupal \
-e DRUPAL_DATABASE_NAME=bitnami_drupal \
--net drupal-tier \
--volume drupal_data:/bitnami \
bitnami/drupal:latest
```
Then you can access your application at http://your-ip/
Access your application at http://your-ip/
## Persisting your application
@ -125,6 +145,8 @@ services:
image: 'bitnami/mariadb:latest'
environment:
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_drupal
- MARIADB_DATABASE=bitnami_drupal
volumes:
- '/path/to/mariadb-persistence:/bitnami'
drupal:
@ -134,6 +156,10 @@ services:
ports:
- '80:80'
- '443:443'
environment:
- DRUPAL_DATABASE_USER=bn_drupal
- DRUPAL_DATABASE_NAME=bitnami_drupal
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- '/path/to/drupal-persistence:/bitnami'
```
@ -149,7 +175,10 @@ services:
2. Create a MariaDB container with host volume:
```bash
$ docker run -d --name mariadb -e ALLOW_EMPTY_PASSWORD=yes \
$ docker run -d --name mariadb \
-e ALLOW_EMPTY_PASSWORD=yes \
-e MARIADB_USER=bn_drupal \
-e MARIADB_DATABASE=bitnami_drupal \
--net drupal-tier \
--volume /path/to/mariadb-persistence:/bitnami \
bitnami/mariadb:latest
@ -161,6 +190,9 @@ services:
```bash
$ docker run -d --name drupal -p 80:80 -p 443:443 \
-e ALLOW_EMPTY_PASSWORD=yes \
-e DRUPAL_DATABASE_USER=bn_drupal \
-e DRUPAL_DATABASE_NAME=bitnami_drupal \
--net drupal-tier \
--volume /path/to/drupal-persistence:/bitnami \
bitnami/drupal:latest
@ -231,13 +263,31 @@ drupal:
Available variables:
##### User and Site configuration
- `DRUPAL_USERNAME`: Drupal application username. Default: **user**
- `DRUPAL_PASSWORD`: Drupal application password. Default: **bitnami**
- `DRUPAL_EMAIL`: Drupal application email. Default: **user@example.com**
- `MARIADB_USER`: Root user for the MariaDB database. Default: **root**
- `MARIADB_PASSWORD`: Root password for the MariaDB.
- `MARIADB_HOST`: Hostname for MariaDB server. Default: **mariadb**
- `MARIADB_PORT_NUMBER`: Port used by MariaDB server. Default: **3306**
##### Use an existing database
- `MARIADB_HOST`: Hostname for MariaDB server. Default: **mariadb**
- `MARIADB_PORT_NUMBER`: Port used by MariaDB server. Default: **3306**
- `DRUPAL_DATABASE_NAME`: Database name that Drupal will use to connect with the database. Default: **bitnami_drupal**
- `DRUPAL_DATABASE_USER`: Database user that Drupal will use to connect with the database. Default: **bn_drupal**
- `DRUPAL_DATABASE_PASSWORD`: Database password that Drupal will use to connect with the database. No defaults.
- `ALLOW_EMPTY_PASSWORD`: It can be used to allow blank passwords. Default: **no**
##### Create a database for Drupal using mysql-client
- `MARIADB_HOST`: Hostname for MariaDB server. Default: **mariadb**
- `MARIADB_PORT_NUMBER`: Port used by MariaDB server. Default: **3306**
- `MARIADB_ROOT_USER`: Database admin user. Default: **root**
- `MARIADB_ROOT_PASSWORD`: Database password for the `MARIADB_ROOT_USER` user. No defaults.
- `MYSQL_CLIENT_CREATE_DATABASE_NAME`: New database to be created by the mysql client module. No defaults.
- `MYSQL_CLIENT_CREATE_DATABASE_USER`: New database user to be created by the mysql client module. No defaults.
- `MYSQL_CLIENT_CREATE_DATABASE_PASSWORD`: Database password for the `MYSQL_CLIENT_CREATE_DATABASE_USER` user. No defaults.
- `ALLOW_EMPTY_PASSWORD`: It can be used to allow blank passwords. Default: **no**
# Contributing

View File

@ -8,8 +8,6 @@ jobs:
RELEASE_SERIES_LIST: "8"
LATEST_STABLE: "8"
IMAGE_NAME: drupal
CHART_NAME: drupal
CHART_REPO: https://github.com/kubernetes/charts
DOCKER_PROJECT: bitnami
QUAY_PROJECT: bitnami
GCLOUD_PROJECT: bitnami-containers