Yes, I know it is called LAMP
A backend services with Content Management Program as Drupal with MariaDB running on Apache using Linux.
The main goal is to create a stack of containers on Linux OS with the following services:
- Apache as web server
- MariaDB as database
- Drupal as CMS
Drupal should be allowed to access the database and the database should be allowed to access Drupal but thourgh different networks. So the network should be divided into two parts: extnet and intnet. Drupal should be able to access the web server via extnet and host should communicate with DB using intnet. Given this configuration the database should not be accessible from the outside.
This is intended to be run on a Linux machine. It has been tested on 22.04.1 LTS Jammy. It should work on other Linux distributions, but you may need to install some packages
To build the stack, run:
make build
Run the following command to start (It also builds) the stack:
make up
To stop the services, run:
make down
Be careful, as this will bring down the entire stack, including the database and perhaps other containers you may have running.
To backup the database, run:
make backup
The configuration is done through environment variables. The following variables are available:
# .env is used for build ARGs
COMPOSER_VERSION=2.4.4
DRUPAL_VERSION=9.4.8
# .env.prod is used for envoriment variables inside the container
ENV_DB_HOST
ENV_DB_NAME
ENV_DB_USER
ENV_DB_PASSWORD
ENV_DRUPAL_ADMIN
ENV_DRUPAL_ADMIN_PASS
ENV_DRUPAL_ADMIN_EMAIL
ENV_DRUPAL_SITE_NAME