Laradock注意事項


Laradock遇到的坑

修改php版本在`.env`中 PHP_VERSION=7.3

修改mysql版本`.env`中MYSQL_VERSION=5.7

1:鏡像資源下載慢

在 env 文件中設置:

docker 本身的 Registry Mirrors 可以設置為 http://hub-mirror.c.163.com 加速鏡像的下載,或者去注冊個阿里雲開發者賬號登錄后可以享用免費的阿里雲鏡像加速服務。
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"],

CHANGE_SOURCE=true
UBUNTU_SOURCE=aliyun

最好設置一下時區

WORKSPACE_TIMEZONE=PRC

2: 構建workspace速度慢

1、在 env 文件中設置:
CHANGE_SOURCE=true
UBUNTU_SOURCE=aliyun
注:UBUNTU_SOURCE 支持多種選擇,具體情況請查看 workspace/sources.sh 文件

2、打開laradock目錄下的workspace下的Dockerfile

在該處添加中科大的源也就是國內加速

find /etc/apt/sources.list.d/ -type f -name "ondrej-ubuntu-php-xenial.list" -exec  sed  -i.bak -r  's#deb(-src)?\s*http(s)?://ppa.launchpad.net#deb\1 https\2://launchpad.proxy.ustclug.org#ig' {} \; && \

3:構建workspace時,報錯提示/tmp/sources.sh: not found

git bash 中 切換到 laradock 目錄

vi ./workspace/sources.sh
:set ff=unix
:wq

4:構建 workspace 時 node 安裝失敗

https://githubusercontent.com.ipaddress.com/raw.githubusercontent.com

訪問上面的鏈接,得到的ip地址寫入host即可解決

5:laradock mysql問題

1、ERROR: for mysql Cannot start service mysql: Ports are not available: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

解決方法:

.env中換一個端口

- MYSQL_PORT=3306
+ MYSQL_PORT=3307

2、2021-01-13T05:44:31.496781Z 0 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!

解決方法:

出現的原因是 一開始我是用了 5.8 ,然后數據目錄存了一些數據,我換成5,7的時候 沒有把數據刪掉,再重新啟動的時候,數據目錄還是指向原來的數據,版本的數據格式不一樣, 清空 數據目錄的數據,便可以啟動了。(C:\Users\user.laradock\data)

6:laradock php-fpm問題

修改為false
CHANGE_SOURCE=false

運行
docker-compose build --no-cache --pull php-fpm

修改代碼必須重啟

  • 使用 Laradock 作為本地開發環境,修改了 Laravel 代碼之后必須重啟 Docker 才能使代碼生效

  • 修改docker-compose.yml必須重啟 Docker 才能生效

docker-compose stop
docker-compose up -d nginx mysql
  • 修改laradock mysql端口

在docker-compose.yml文件
command+ f 搜索mysql

### MySQL ################################################
    mysql:
      build:
        context: ./mysql
        args:
          - MYSQL_VERSION=${MYSQL_VERSION}
      environment:
        - MYSQL_DATABASE=${MYSQL_DATABASE}
        - MYSQL_USER=${MYSQL_USER}
        - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
        - TZ=${WORKSPACE_TIMEZONE}
      volumes:
        - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
        - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
      ports:
      #  - "${MYSQL_PORT}:3306"  #修改這一行,我將其注釋掉了
        - "3308:3306"   #改成不沖突的端口  第一個是本地端口 第二個是容器中的端口
      networks:
        - backend

laradock 如何添加 redis 配置

修改 Dockerfile

編輯 redis/Dockerfile 如下

FROM redis:latest  
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"  
## For security settings uncomment, make the dir, copy conf, and also start with the conf, to use it  
RUN mkdir -p /usr/local/etc/redis  
COPY redis.conf /usr/local/etc/redis/redis.conf  
VOLUME /data  
EXPOSE 6379  
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]  
#CMD ["redis-server"]  

編輯配置文件*

默認情況 redis 目錄下有 redis.conf 文件,修改以下兩點即可

注釋 bind 127.0.0.1

protected-mode 改為 no

requirepass 設置密碼

其他配置根據自己情況進行修改。

切換到 laradock 目錄  重裝 redis

停止 redis docker-compose stop redis

重裝 docker-compose build --no-cache redis

啟動 docker-compose up -d redis

正常情況就啟動成功了。

幾個常用命令

php -m //
php -i |grep php.ini  //查看php.ini位置
php --ri swoole   //讀取swoole信息

redis-cli //用於啟動redis客戶端


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM