frappe_docker/devcontainer-example/docker-compose.yml
adithya 731efdb02b fix: MariaDB permission issue with Docker Desktop
After updating the Docker Desktop for Windows to v4.55.0 MariaDB had an
issue related to permission denied for connections from other
containers. This commit resolves it by adding a dedicated network for
all the containers in the compose, and adding a flag of MariaDB to avoid
DNS resolution.
2026-01-21 16:34:56 +05:30

103 lines
3.2 KiB
YAML

services:
mariadb:
image: docker.io/mariadb:11.8
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
- --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6
- --skip-name-resolve
environment:
MYSQL_ROOT_PASSWORD: 123
MARIADB_AUTO_UPGRADE: 1
volumes:
- mariadb-data:/var/lib/mysql
networks:
- frappe-network
# Enable PostgreSQL only if you use it, see development/README.md for more information.
# postgresql:
# image: postgres:14
# environment:
# POSTGRES_PASSWORD: 123
# volumes:
# - postgresql-data:/var/lib/postgresql/data
# Enable Mailpit if you need to test outgoing mail services
# See https://mailpit.axllent.org/
# mailpit:
# image: axllent/mailpit
# volumes:
# - mailpit-data:/data
# ports:
# - 8025:8025
# - 1025:1025
# environment:
# MP_MAX_MESSAGES: 5000
# MP_DATA_FILE: /data/mailpit.db
# MP_SMTP_AUTH_ACCEPT_ANY: 1
# MP_SMTP_AUTH_ALLOW_INSECURE: 1
# networks:
# - frappe-network
redis-cache:
image: docker.io/redis:alpine
networks:
- frappe-network
redis-queue:
image: docker.io/redis:alpine
networks:
- frappe-network
frappe:
image: docker.io/frappe/bench:latest
# If you want to build the current bench image the Containerfile is in this Repo.
# build: ../images/bench
command: sleep infinity
environment:
- SHELL=/bin/bash
volumes:
- ..:/workspace:cached
# Enable if you require git cloning
# - ${HOME}/.ssh:/home/frappe/.ssh
working_dir: /workspace/development
ports:
- 8000-8005:8000-8005
- 9000-9005:9000-9005
networks:
- frappe-network
# enable the below service if you need Cypress UI Tests to be executed
# Before enabling ensure install_x11_deps.sh has been executed and display variable is exported.
# Run install_x11_deps.sh again if DISPLAY is not set
# ui-tester:
# # pass custom command to start Cypress otherwise it will use the entrypoint
# # specified in the Cypress Docker image.
# # also pass "--project <folder>" so that when Cypress opens
# # it can find file "cypress.json" and show integration specs
# # https://on.cypress.io/command-line#cypress-open
# entrypoint: 'sleep infinity'
# image: "docker.io/cypress/included:latest"
# environment:
# - SHELL=/bin/bash
# # get the IP address of the host machine and allow X11 to accept
# # incoming connections from that IP address
# # IP=$(ipconfig getifaddr en0) or mac or \
# # IP=$($(hostname -I | awk '{print $1}') ) for Ubuntu
# # /usr/X11/bin/xhost + $IP
# # then pass the environment variable DISPLAY to show Cypress GUI on the host system
# # DISPLAY=$IP:0
# - DISPLAY
# volumes:
# # for Cypress to communicate with the X11 server pass this socket file
# # in addition to any other mapped volumes
# - /tmp/.X11-unix:/tmp/.X11-unix
# - ..:/workspace:z,cached
# network_mode: "host"
volumes:
mariadb-data:
#postgresql-data:
#mailpit-data:
networks:
frappe-network:
driver: bridge