laradock 遇到的问题汇总 (Mac)

1、laradock_mysql_1 docker-entrypoint.sh mysqld Exit 1

参考文章

环境

系统:MacOS Mojave 10.14.5
Docker Version: 2.1.0.5
docker-compose: 1.24.1

问题

laradock_mysql_1 docker-entrypoint.sh mysqld Exit 1

$ docker-compose ps
           Name                          Command              State           Ports        
-------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh           Up       2375/tcp, 2376/tcp  
laradock_mysql_1              docker-entrypoint.sh mysqld     Exit 1                       
laradock_nginx_1              /bin/bash /opt/startup.sh       Exit 1                       
laradock_php-fpm_1            docker-php-entrypoint php-fpm   Up       9000/tcp            
laradock_workspace_1          /sbin/my_init                   Up       0.0.0.0:2222->22/tcp

解决办法

停止 docker

docker-compose stop

修改 laradock.env 中的 MYSQL_PASSWORD 为mysql的密码。

### MYSQL #################################################

MYSQL_VERSION=latest
MYSQL_DATABASE=test
MYSQL_USER=root
- MYSQL_PASSWORD=secret
+ MYSQL_PASSWORD=root  (mysql容器mysql的登录密码,初始密码是root)
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
$ docker-compose up -d mysql nginx
$ docker-compose ps
          Name                          Command              State                  Ports              
--------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh           Up       2375/tcp, 2376/tcp               
laradock_mysql_1              docker-entrypoint.sh mysqld     Up       0.0.0.0:3306->3306/tcp, 33060/tcp
laradock_nginx_1              /bin/bash /opt/startup.sh       Exit 1                                    
laradock_php-fpm_1            docker-php-entrypoint php-fpm   Up       9000/tcp                         
laradock_workspace_1          /sbin/my_init                   Up       0.0.0.0:2222->22/tcp            

2、ERROR: No container found for mysql_1

问题

$ docker-compose exec mysql bash
> ERROR: No container found for mysql_1

我…我把 MYSQL_VERSION=latest 改成了 MYSQL_VERSION=5.7,解决了。然后,又切回latest,重新执行了一遍操作,也可以登录进mysql容器了。不知道为什么。

解决办法

// laradock .env
- MYSQL_VERSION=latest
+ MYSQL_VERSION=5.7

$ docker-compose build mysql
> Recreating laradock_mysql_1 ... done
$ docker-compose ps
           Name                          Command              State                  Ports              
--------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh           Up       2375/tcp, 2376/tcp               
laradock_mysql_1              docker-entrypoint.sh mysqld     Up       0.0.0.0:3306->3306/tcp, 33060/tcp
laradock_nginx_1              /bin/bash /opt/startup.sh       Exit 1                                    
laradock_php-fpm_1            docker-php-entrypoint php-fpm   Up       9000/tcp                         
laradock_workspace_1          /sbin/my_init                   Up       0.0.0.0:2222->22/tcp    
$ docker-compose exec mysql bash
root@6a18b192d34b:/# 

3、laradock_nginx_1 /bin/bash /opt/startup.sh Exit 1

解决办法

检查nginx是否运行

$ ps -ef|grep nginx
0 34878     1   0  71119  ??         0:00.00 nginx: master process nginx
   -2 34879 34878   0  71119  ??         0:00.11 nginx: worker process
  501 19664 19644   0  4:27下午 ttys004    0:00.00 grep nginx

nginx 未运行。

$ docker-compose build nginx
$ docker-compose up -d nginx
$ docker-compose ps
          Name                          Command              State                    Ports                  
--------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh           Up      2375/tcp, 2376/tcp                      
laradock_mysql_1              docker-entrypoint.sh mysqld     Up      0.0.0.0:3306->3306/tcp, 33060/tcp       
laradock_nginx_1              /bin/bash /opt/startup.sh       Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1            docker-php-entrypoint php-fpm   Up      9000/tcp                                
laradock_workspace_1          /sbin/my_init                   Up      0.0.0.0:2222->22/tcp 

补充

因为我想用laradock同时管理多个项目,所以在nginx/sites/下建立了两个.conf文件,所以每次启动nginx就会报这个错,我就删掉其中一个,启动之后再创建就可以了。

4、localhost 错误 HTTP ERROR 500

问题

打开 localhost,出现

该网页无法正常运作blog.apps 
目前无法处理此请求。
HTTP ERROR 500

解决办法

如果是使用 laravel new blog 创建项目,解决办法如下。

// laradock 项目下
$ docker-composer exec workspace bash
root@b275e232032d:/var/www# cd blog
root@b275e232032d:/var/www/blog# composer install
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 84 installs, 0 updates, 0 removals
  - Installing doctrine/inflector (1.3.1): Downloading (100%)         
  - Installing doctrine/lexer (1.2.0): Downloading (100%)         
  - Installing dragonmantank/cron-expression (v2.3.0): Downloading (100%)         
  - Installing erusev/parsedown (1.7.3): Downloading (100%)         
  - Installing symfony/polyfill-ctype (v1.12.0): Downloading (100%) 
  - ...

运行完毕在浏览器打开 http://localhost 或自定义的域名查看。

5、failed to open stream: Permission denied

问题

打开 localhost ,出现

The stream or file "/var/www/blog/storage/logs/laravel-2019-11-20.log" could not be opened: failed to open stream: Permission denied

解决办法

storage/logs 和 bootstap/cache 文件权限不够。

$ chmod a+w storage/logs
$ chmod a+w bootstrap/cache

6、No application encryption key has been specified.

问题

localhost 显示 No application encryption key has been specified.

解决办法

在项目下,执行如下命令。若未自动赋值,可以自行将生成的key 复制粘贴到 .envAPP_KEY。(格式举例:base64:8visiDBkay+yXRVvARj2ATndai+QnHMyY8FgrM6VIn0=)

$ php artisan key:generate
> Application key set successfully.

7、ERROR: for laradock_mysql_1 Cannot start service mysql … bind: address already in use

问题

$ docker-compose up -d nginx mysql
Creating network "laradock_frontend" with driver "bridge"
Creating network "laradock_backend" with driver "bridge"
Creating network "laradock_default" with the default driver
Creating laradock_mysql_1            ... error
Creating laradock_docker-in-docker_1 ... 

ERROR: for laradock_mysql_1  Cannot start service mysql: driver failed programming external connectivity on endpoint laradock_mysql_1 (25b60d2440cbbdc7455820731f930817fcf95eec8f80096254dcdfd1590cd1e5): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: addresCreating laradock_docker-in-docker_1 ... done
Creating laradock_workspace_1        ... done
Creating laradock_php-fpm_1          ... done
Creating laradock_nginx_1            ... done

ERROR: for mysql  Cannot start service mysql: driver failed programming external connectivity on endpoint laradock_mysql_1 (25b60d2440cbbdc7455820731f930817fcf95eec8f80096254dcdfd1590cd1e5): Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use
ERROR: Encountered errors while bringing up the project.

解决办法

.env中换一个端口

- MYSQL_PORT=3306
+ MYSQL_PORT=1306
$ docker-compose down
$ docker-compose up -d  mysql nginx
$ docker-compose ps
          Name                          Command              State                     Ports                  
---------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh           Up       2375/tcp, 2376/tcp                      
laradock_mysql_1              docker-entrypoint.sh mysqld     Exit 2                                           
laradock_nginx_1              /bin/bash /opt/startup.sh       Up       0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1            docker-php-entrypoint php-fpm   Up       9000/tcp                                
laradock_workspace_1          /sbin/my_init                   Up       0.0.0.0:2222->22/tcp     

参考这个issue问题解决。删除 ~/.laradock/data/mysql 这个文件夹。

$ rm -rf ~/.laradock/data/mysql
$ docker-compose up -d mysql // laradock 路径下
$ docker-compose ps
          Name                          Command              State                    Ports                  
--------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh           Up      2375/tcp, 2376/tcp                      
laradock_mysql_1              docker-entrypoint.sh mysqld     Up      0.0.0.0:1306->3306/tcp, 33060/tcp       
laradock_nginx_1              /bin/bash /opt/startup.sh       Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1            docker-php-entrypoint php-fpm   Up      9000/tcp                                
laradock_workspace_1          /sbin/my_init                   Up      0.0.0.0:2222->22/tcp 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值