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 复制粘贴到 .env
的 APP_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