laradock簡介
一套完整的基於Docker的PHP開發環境.包含了預先打包的Docker鏡像,所有預先配置都是為了提供一個完美的PHP開發環境(中文文檔).PS: 不是最新版的 windows10 或者 Windows Server 2016,需要借助 Docker Toolbox 來進行安裝使用 Docker
問題
一 : raw.githubusercontent.com Connection refused
原因 : raw.githubusercontent.com域名的DNS解析被污染,無法獲取正確的ip地址
解決方案:
- 打開https://www.ipaddress.com/ 輸入域名,獲取到正確的ip
- 在本機的 host 文件中添加(linux系統: sudo vi /etc/hosts)
199.232.68.133 raw.githubusercontent.com
199.232.68.133 user-images.githubusercontent.com
199.232.68.133 avatars2.githubusercontent.com
199.232.68.133 avatars1.githubusercontent.com
二 : {"Message":"Unhandled exception: Filesharing has been cancelled"}
原因 : window下項目目錄未添加到docker文件共享中
解決方案 : 在容器構建時左下角消息提示中點擊"share it", 或是按如下圖添加:
三 : Service 'php-fpm' failed to build: The command '/bin/sh -c if
原因 : 原php-fpm的Dockerfile文件配置項不適用
解決方案 : /laradock/php-fpm/Dockerfile:684改成如下:
###########################################################################
# IMAP:
###########################################################################
ARG INSTALL_IMAP=false
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get install -y libc-client-dev libkrb5-dev && \
set -eux; \
PHP_OPENSSL=yes docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
docker-php-ext-install imap \
;fi
四 : mysql容器無法啟動(確認端口沒有被占用) ,log報錯 InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!
原因 : laradock數據目錄寫入問題
解決方案:
- 清空~/.laradock/data/mysql文件夾
- 修改.env文件.DATA_PATH_HOST=~/.laradock/data 為: DATA_PATH_HOST=./data(在當前目錄新建data文件夾)
二選一,之后重啟容器:
docker-compose up -d mysql
五 : mysql/redis等啟動成功但連接失敗
解決方案:
laravel項目中的.env文件中作如下修改:
DB_HOST=127.0.0.1 改成 DB_HOST=mysql #容器名
REDIS_HOST=127.0.0.1 改成 REDIS_HOST=redis