- Services
- Network
- Installation
- Example of usage (MariaDB 10.9.*)
- Use CodeSniffer in PHPStorm
- Use Node.js and npm in JetBrains IDEs
| Service | Container Name | Ports | Network | Credentials |
| MariaDB 10.11.19 | mariadb-10-11 | 13308:3306 | local_network |
RootUsername: root RootPassword: root-password DefaultDatabase: dev-database DefaultUser: dev-user DefaultPassword: dev-password |
| MariaDB 10.9.8 | mariadb-10-9 | 13306:3306 | local_network |
RootUsername: root RootPassword: root-password DefaultDatabase: dev-database DefaultUser: dev-user DefaultPassword: dev-password |
| MariaDB 10.6.28 | mariadb-10-6 | 13307:3306 | local_network |
RootUsername: root RootPassword: root-password DefaultDatabase: dev-database DefaultUser: dev-user DefaultPassword: dev-password |
| Redis 7.2.16 | redis-7-2 | 16379:6379 | local_network | |
| ValKey 8.1.10 | valkey-8-1 | 26379:6379 | local_network | |
| MongoDB 7.0.45 | mongo-7-0 | 27017:27017 | local_network |
RootUsername: root RootPassword: root-dev-password |
| PHP-FPM 8.4.27 for CodeSniffer | php-fpm-cf | 10000:9000 | local_network | |
| S3Mock 5.1.0 | s3mock | 9092:9090 | local_network | |
| min.io RELEASE.2025-10-15T17-29-55Z | minio |
9004:9000 9005:9001 (MinIO Console) |
local_network |
RootUsername: minio RootPassword: dev-password |
| Node.js 24.22.0 LTS (npm) | node-24 | local_network |
All services are attached to the Docker network local_network (bridge driver, fixed name).
Containers in this network reach each other by their container name, e.g. minio:9000
(the host ports from the table above are only needed from the host machine).
To use the services from another Docker Compose project, attach that project to the same network:
services:
app:
networks:
- local_network
networks:
local_network:
external: truegit clone [email protected]:alaugks/docker-local-env.gitcd docker-local-envdocker compose up -d.env.local
DB_DRIVER=mysql
DB_USER=dev-user
DB_PASSWORD=dev-password
DB_HOST=mariadb-10-9
DB_PORT=3306
DB_NAME=your_database
DB_SERVER_VERSION=10.9.8-MariaDBservices.yaml
parameters:
database_url: '%env(DB_DRIVER)%://%env(DB_USER)%:%env(DB_PASSWORD)%@%env(DB_HOST)%:%env(DB_PORT)%/%env(DB_NAME)%?serverVersion=%env(DB_SERVER_VERSION)%'application.properties
spring.datasource.url=jdbc:mariadb://mariadb-10-9:3306/your_database
spring.datasource.username=dev-user
spring.datasource.password=dev-password
spring.datasource.driver-class-name=org.mariadb.jdbc.DriverSettings CLI Interpreters
Settings PHP CodeSniffer
Path Code Sniffer
/var/www/html/vendor/squizlabs/php_codesniffer/bin/phpcs
Path Code Beautifier
/var/www/html/vendor/squizlabs/php_codesniffer/bin/phpcbf
The node-24 container runs Node.js (current LTS) and npm, so no local Node.js installation is needed.
The container is a plain Node.js instance without a project mount.
- Start the container:
docker compose up -d node-24 - In the IDE open Settings > Languages & Frameworks > Node.js
- Node interpreter > Add... > Add Remote... > Docker Compose
- Select
docker-compose.ymlof this project and the servicenode-24 - Set the paths inside the container if the IDE asks for them (verified in the image):
Settings Node.js Remote Runtime
Path Node.js
/usr/local/bin/node
Path npm
/usr/local/bin/npm
Path npm package (package manager in the IDE)
/usr/local/lib/node_modules/npm
Alternatively, add the image node:24.22.0-alpine directly as a Docker interpreter (Add Remote... > Docker); the IDE then mounts the project itself.


