Вы не сможете сделать это только с помощью docker-compose.yml
, потому что у составного файла нет механизма, подобного docker exec
. Кроме того, запуск systemd
(или вообще любого менеджера процессов) внутри контейнера является анти-паттерном. Это может усложнить управление и масштабирование ваших контейнеров и в большинстве случаев не дает вам никаких преимуществ.
Почему бы вам просто не иметь два изображения:
- One который начинается
mariadb
- Тот, который начинается Apache
httpd
Это может выглядеть примерно так:
version: "3"
services:
web:
image: httpd
ports:
- "8888:80"
db:
image: mariadb
volumes:
- "/root/docker/data:/var/lib/mysql"
Возможно, вам понадобится пользовательский изображение для веб-сервера, содержащее приложение, которое вы используете, но вы определенно можете использовать официальный образ mariadb для своей базы данных.