我在使用laradock的时候,碰到一些常见的坑,借此记录一下,也为小白提供一些解决思路
1.首先确保你的环境中安装了git,执行命令克隆
git clone https://github.com/laradock/laradock.git
得到laradock目录
2.进入laradock根目录,执行cp env-example .env
env文件中,我们可以指定对应的软件版本,比如我们修改mysql版本为5.7 MYSQL_VERSION=5.7.26
,php版本为7.4 PHP_VERSION=7.4
修改版本号之后,需要重新构建容器,这里我们都使用docker-compose
来管理我们的容器,
docker-compose build php-fpm mysql
3.构建workspace
工作区 docker-compose build workspace
worspace容器主要用来管理项目的。 例如:执行一些cli的命令、php artisan、composer、php --version
。 进入容器,执行一些常用命令:
docker-compose exec --user=laradock workspace bash
这里需要注意的是,如果提示权限问题,需要加上--user=laradock
参数,进入容器后,可以执行常用操作,例如laravel项目中php artisan migrate
假如在构建workspace的时候出现以下报错:
ERROR: Service 'workspace' failed to build: The command '/bin/sh -c if [ ${INSTALL_NODE} = true ]; then mkdir -p $NVM_DIR && curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash && . $NVM_DIR/nvm.sh && nvm install ${NODE_VERSION} && nvm use ${NODE_VERSION} && nvm alias ${NODE_VERSION} && if [ ${NPM_REGISTRY} ]; then npm config set registry ${NPM_REGISTRY} ;fi && if [ ${INSTALL_NPM_GULP} = true ]; then npm install -g gulp ;fi && if [ ${INSTALL_NPM_BOWER} = true ]; then npm install -g bower ;fi && if [ ${INSTALL_NPM_VUE_CLI} = true ]; then npm install -g @vue/cli ;fi && if [ ${INSTALL_NPM_ANGULAR_CLI} = true ]; then npm install -g @angular/cli ;fi && ln -s `npm bin --global` /home/laradock/.node-bin ;fi' returned a non-zero code: 2
此问题出现有两种解决方式:
第一种:可能是https://raw.githubusercontent.com 被墙了。此时,可以Ping一下,如果ping不通,说明是此问题,我们在访问https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh,如果页面没有正常访问,则确定是此问题,这个时候,我们需要去www.ipaddress.com去查看一下此网址的真实IP,然后去修改/etc/hosts
文件,例如:199.232.68.133 raw.githubusercontent.com
,然后去重新构建,如果正常则说明成功
第二种:如果第一种方式解决不了,而上面的网址又能正常访问,这个时候说明是安装脚本的问题,此时我们需要去修改.env
文件,搜索WORKSPACE_
,然后将上述报错的选项全部设置为false
,然后重新构建,正常则成功
下面开始构建我们的容器
docker-compose up -d nginx mysql
正常情况下workspace
和 php-fpm
会自动运行,所以不需要再 up 命令中指定它们, 如果他们没有自动运行,那么你需要这样指定它们:
docker-compose up -d nginx php-fpm mysql workspace
所有的网站配置文件在/laradock/nginx/sites
文件夹下,网站目录最好和laradock同级