升級 Docker Desktop for Windows 後出現 Docker Desktop WSL integration with distro Legacy unexpectedly stopped 錯誤彈窗的解決辦法。
當升級到最新的 MySQL 8.4 Docker 映像檔時,你可能會遇到一些棘手的問題。別擔心,這篇文章將為你提供詳細的解決方案,讓你輕鬆啟動 MySQL 容器。
docker-compose.yml # 本指南運行環境系 MacBook 上的 Docker 內,相關容器配置如下:
1# docker-compose.yml 2version: '3' 3services: 4 mysql: 5 image: mariadb:10.2 6 restart: always 7 volumes: 8 - '~/Documents/Datas/laravel/mysql:/var/lib/mysql' 9 ports: 10 - '127.0.0.1:23306:3306' 11 environment: 12 MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' 13 MYSQL_DATABASE: 'puppy' 14 laravel: 15 image: ycheung/laravel-dev 16 restart: always 17 ports: 18 - '8081:80' 19 - '9001:9001' 20 volumes: 21 - '~/Documents/laravel:/var/www/html' 22 depends_on: 23 - mysql 24 - mailhog 25 mailhog: 26 image: mailhog/mailhog 27 ports: 28 - "1025:1025" 29 - "8025:8025" 30 selenium-hub: 31 image: selenium/hub 32 container_name: selenium-hub 33 ports: 34 - "4444:4444" 35 chrome: 36 image: selenium/node-chrome 37 volumes: 38 - '/dev/shm:/dev/shm' 39 depends_on: 40 - selenium-hub 41 environment: 42 - HUB_HOST=selenium-hub 43 - HUB_PORT=4444 44 - JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps= 安裝 Laravel Dusk # 1composer require --dev laravel/dusk composer install dusk 執行安裝腳本 # 執行安裝腳本,生成測試目錄 tests/Browser 和示例測試文件
Docker安装完之后,如果是以非ROOT用户登录的必须加sudo执行docker命令,否则会报错:
1Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied 解决办法是把当前用户添加进docker用户组。
MariaDB Image使用的是當前最新的v10.3版本
1docker pull mariadb:latest docker-compose.yml文件內容:
1version: "3" 2services: 3 mariadb: 4 image: mariadb 5 container_name: mariadb 6 restart: always 7 volumes: 8 - ${DATA_DIR}:/var/lib/mysql 9 ports: 10 - "3306:3306" 11 environment: 12 MYSQL_ROOT_PASSWORD: password 13 MYSQL_DATABASE: public .env 文件內容:
以下VSCODE XDEBUG 配置文件使用场景:项目在docker内运行(docker内项目位置为/var/www/html),项目代码映射在docker外,vscode编辑器安装在docker外。