version: '2' networks: frontend: driver: bridge backend: driver: bridge services: # api app: build: . ports: - "8000:8000" volumes: - .:/app env_file: .env working_dir: /app depends_on: - mysql links: - mysql networks: - frontend - backend # caddy Server caddy: build: ./caddy volumes: - .:/var/www - ./caddy/Caddyfile:/etc/Caddyfile - ./logs/caddy:/var/log/caddy - ./data:/root/.caddy ports: - "80:80" - "443:443" networks: - frontend - backend depends_on: - app # database mysql: build: context: ./docker/mysql args: - MYSQL_VERSION=5.6 environment: - MYSQL_DATABASE=default - MYSQL_USER=default - MYSQL_PASSWORD=secret - MYSQL_ROOT_PASSWORD=root - TZ=UTC volumes: - ./data/mysql:/var/lib/mysql - ./docker/mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d networks: - frontend - backend ports: - "3306:3306" # redis cache: image: redis:3.0-alpine phpmyadmin: depends_on: - mysql image: phpmyadmin/phpmyadmin restart: always ports: - 8090:80 environment: PMA_HOST: mysql MYSQL_ROOT_PASSWORD: root networks: - frontend - backend volumes: dbdata: