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客户端
posted @ 2020-12-21 00:11  caibaotimes  阅读(980)  评论(0编辑  收藏  举报