Nach vielen Versuchen und Messungen der Perfomance unter Last habe ich folgendes docker-compose.yaml erstellt.

Hier ist erstmal die Definition des DB Containers:

  db:
    image: mariadb:10.1.48
    container_name: ${DB_HOST}
    restart: always
    ports:
      - '3306:3306'
    volumes:
        - template-db:/var/lib/mysql
    command: ['mysqld', '--character-set-server=${DB_CHARSET}', '--collation-server=${DB_COLLATION}']
    environment:
      MYSQL_USER: ${DB_USER}
      MYSQL_PASSWORD: ${DB_PASS}
      MYSQL_DATABASE: ${DB_NAME}
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS}
      
volumes:
  template-db:

Die verschiedenen Variablen werden via .env File festgelegt.

DB_HOST=deployment-db-2
DB_USER=run
DB_PASS=ldisfk24esf
DB_ROOT_PASS=ldiamQa943
DB_NAME=my_db
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci

Die Datenbank ist vom Host unter dem dem Port: 3306 und dem localhost erreichbar. Innerhalb der Docker-Container ist die Datenbank unter dem Host deployment-db-2 erreichbar.