我必须制作LAravel
应用程序并提供一个Dockerfile,但我真的对此感到困惑。在此之前,我做了个噩梦,在机器上安装laravel
。
我正在尝试获取dockervel
图像,并按照以下步骤操作:
http://www.spiralout.eu/2015/12/dockervel-laravel-development.html
但是,当我运行dartisan make:auth时,出现以下错误:
**ERROR:** for dockervel_mysql_1 **Cannot restart container** c258b418c03cbd6ec02c349c12cf09403f0eaf42fa9248019af7860d037d6474: **driver failed programming external connectivity on endpoint dockervel_mysql_1** (da3dd576458aa1fe3af7b539c48b9d61d97432cf5e9ee02d78562851f53981ae): E**rror starting userland proxy: listen tcp0.0.0.0:3306: bind: address already in use.**
我试图更改docker-compose.yml
中的默认端口> ports:
>
> - "8084:80"
仍然什么也没有,也尝试停止我机器上的apache2(service apache2 stop
),也尝试了docker-compose restart
并删除了docker容器dockervel_mysql_1
。我不得不提的是,
Laravel proj.
中已经有一个/var/www/laravel
。请帮助!
最佳答案
可能您已经在端口3306中运行了MySQL服务。您应该先关闭它。
然后尝试结束docker-compose down
并使用docker-compose up
重新启动它。
还记得使用dartisan make:auth
在项目中添加文件(例如dpermit
)后还要更改权限。
更新:
由于您已将端口更改为“8084”,因此应转到localhost:8084
如果您看到默认的apache,那么您可能正在浏览另一台服务器,因为dockervel是基于nginx
构建的。
您可能在Docker上也有一些空白。不要将本地存储与docker存储混合使用。容器中的/var/www
与本地/var/www
不同。在docker-compose.yml中,将本地~/dockervel/www
挂载到容器/var/www
。
我建议您重新开始,并还原对apache服务器所做的更改。关闭它,您不需要它。 Dockervel将在容器中为您提供NginX服务器。