Dump mariadb

dump mariadb from shell
mariadb-dump --user=admin_backup --password --lock-tables --all-databases > /data/backup/dbs.sql

Copy file from inside a container to host

Copy file to host
docker cp container:src_path dest_path

MariaDB - user

Show all users - root
MariaDB [(none)]> SELECT user FROM mysql.user;
+-------------+
| User        |
+-------------+
| root        |
| healthcheck |
| healthcheck |
| healthcheck |
| mariadb.sys |
| root        |
+-------------+
6 rows in set (0.001 sec)
Create new user
CREATE USER foo IDENTIFIED BY 'password';
Grant all privileges on a database to a user
GRANT ALL PRIVILEGES ON yourDB.* TO 'foo';
Flush privileges[source, mariadb-shell]
FLUSH PRIVILEGES;
Show all privileges
SHOW GRANTS FOR 'foo';

Cron jobs

Using crontab for periodic jobs.

Install crontab

Check if crontab is installed:
apt list cron
Show path to crontab:
which cron
Install crontab
apt install cron
Remove cron configuration, data and dependencies
apt autoremove --purge cron

Using crontab

Edit crontab with standard editor
crontab -e
Edit crontab with EDITOR=nano
EDITOR=nano crontab -e

crontab settings

find directory

find directory inside directory
find /home -type d -name "folder-name"

Drupal-a

FROM debian:bullseye

# tools
RUN apt-get update \
 && apt-get install -y curl gnupg git wget unzip zip nano cron

# load php packages into apt repository
RUN dpkg -l | grep php | tee packages.txt \
 && apt install -y apt-transport-https lsb-release ca-certificates software-properties-common \
 && wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \
 && sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

# set versions
ARG PHP_VERSION=7.4
ARG DRUPAL_VERSION=7.98
ARG CIVI_VERSION=5.67.1

# php all inclusive
RUN apt-get update \
 && apt-get install -y php$PHP_VERSION php$PHP_VERSION-imap php$PHP_VERSION-ldap php$PHP_VERSION-curl php$PHP_VERSION-ssh2 \
 && apt-get install -y php$PHP_VERSION-mysql php$PHP_VERSION-mysqli php$PHP_VERSION-intl php$PHP_VERSION-gd php$PHP_VERSION-dev \
 && apt-get install -y php$PHP_VERSION-bcmath php$PHP_VERSION-mbstring php$PHP_VERSION-soap php$PHP_VERSION-zip php$PHP_VERSION-fpm \
 && apt-get install -y php$PHP_VERSION-xml php$PHP_VERSION-imagick php$PHP_VERSION-apc php$PHP_VERSION-uploadprogress

# getting drupal
RUN wget https://ftp.drupal.org/files/projects/drupal-$DRUPAL_VERSION.tar.gz && tar -xvzf drupal-$DRUPAL_VERSION.tar.gz -C /
RUN mv /drupal-$DRUPAL_VERSION /drupal
RUN rm drupal-$DRUPAL_VERSION.tar.gz

# set workdir
WORKDIR /drupal

# install composer but do not create a drupal site
ARG COMPOSER_ALLOW_SUPERUSER=1
RUN apt-get update \
 && wget -O composer-setup.php https://getcomposer.org/installer \
 && php composer-setup.php --install-dir=/usr/local/bin --filename=composer \
 && chmod +x /usr/local/bin/composer

# install cv - civicrm command line utility
RUN curl -LsS https://download.civicrm.org/cv/cv.phar -o /usr/local/bin/cv \
 && chmod +x /usr/local/bin/cv

# folder / file permissions for installation (wird von cv automatisch gemacht)
RUN cp sites/default/default.settings.php sites/default/settings.php
RUN chmod a+w sites/default/settings.php && chmod a+w sites/default

# load translation
RUN cd profiles/standard/translations && wget https://ftp.drupal.org/files/translations/7.x/drupal/drupal-$DRUPAL_VERSION.de.po && cd /drupal

# # # load civicrm module, lang package, untar and rename
RUN cd sites/all/modules \
 && wget https://download.civicrm.org/civicrm-$CIVI_VERSION-drupal.tar.gz \
 && mv civicrm-$CIVI_VERSION-drupal.tar.gz civicrm.tar.gz \
 && tar -zxvf civicrm.tar.gz \
 && rm civicrm.tar.gz \
 && wget https://download.civicrm.org/civicrm-$CIVI_VERSION-l10n.tar.gz \
 && tar -zvxf civicrm-$CIVI_VERSION-l10n.tar.gz \
 && rm civicrm-$CIVI_VERSION-l10n.tar.gz

# create symlink to /drupal
RUN rm -r /var/www/html && ln -s /drupal /var/www/html

# apache2
RUN apt-get install -y apache2 libapache2-mod-php$PHP_VERSION \
 && sed -i '$aServerName localhost \n<Directory "/var/www/html">\n AllowOverride All \n</Directory>' /etc/apache2/apache2.conf \
 && a2enmod rewrite


CMD ["/bin/bash"]

Composer / DRUSH Installationsbefehle

docker build -t drupal:a .
docker run -it -p 8642:80 --network="mariadb" --rm  drupal:a /bin/bash

DB STUFF

docker exec -it invoices-invoicesdb-1 /bin/bash

Language civicrm on Drupal 10

mkdir -p /drupal/web/sites/default/files/civicrm/l10n/de_DE/LC_MESSAGES
curl -Lss -o /drupal/web/sites/default/files/civicrm/l10n/de_DE/LC_MESSAGES/civicrm.mo https://download.civicrm.org/civicrm-l10n-core/mo/de_DE/civicrm.mo
export CIVICRM_L10N_BASEDIR=/var/www/html/sites/default/files/civicrm/l10n
cv core:install --cms-base-url="http://tinker-server.de:8642" --db="mysql://civi:civi@mariadb.tinker-server.de:3306/test_civi_b" --lang="de_DE"

NEW APPROACH

DBMS - mariadb als eigenständiger service

Übersicht * Drupal 7.98 * PHP 7.4 * civiCRM 5.67.3

Installation via WebUI