安装docker

官网地址下载安装

安装Laradock

从git下载laradock

git clone https://github.com/LaraDock/laradock.git

注:最好把Laradock clone到项目同级目录

从env-example复制一份.env配置文件

cd laradock
cp env-example .env
vim .env

编辑一下env文件

APPLICATION=../code/

注: 这边的code是我的项目目录, 和Laradock同级

开始安装并启动nginx

docker-compose up -d nginx

安装npm

因为composer是自带的(别忘了设置一下国内镜像),所以不需要装,这里采用nvm安装nodejs

进入workspace容器

docker-compose exec —user=laradock workspace bash

安装nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
  • 常用命令:
nvm ls-remote
nvm install 版本号
  • 以下安装node+npm是别的地方看到的 没有尝试过
    1)打开docker-compose.yml文件;

2)在Workspace容器中找到INSTALL_NODE选项设置为true

workspace:
        build:
            context: ./workspace
            args:
                - INSTALL_NODE=true
    ...

​ 3)最后重建容器:docker-compose build workspace

修改nginx配置

在laradock的nginx文件夹下的sites目录 下修改 default.conf

客户机上的code文件夹挂载到了/var/www

示例

code/stock -> /var/www/stock/public/

重启nginx

docker-compose restart nginx

(忘了是不是这个命令)

如果您对docker-compose.yml配置进行了更改,则运行此命令后这些更改不会反映出来。

例如,对环境变量(在构建容器后但在容器的命令执行之前添加)的更改在重新启动后不会更新。

连接外部mysql

我之前用的phpstudy上的mysql, 懒得改了, 说一下怎么在容器里连接外部的msyql, 后面说一下如何用mysql容器

win+R -> cmd -> ipfoncig

找到一个

以太网适配器 vEthernet (DockerNAT):

   连接特定的 DNS 后缀 . . . . . . . :
   IPv4 地址 . . . . . . . . . . . . : 10.0.75.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

记下ip

在laravel项目的.env中修改

DB_CONNECTION=mysql
DB_HOST=10.0.75.1

之后会报错Access denied for user'root'@'

这边解决方法是打开 phpStudy > 服务管理器 > MySQL > 启动。再打开 phpStudy > MySQL工具 > MySQL命令行 输入 mysql 密码执行

grant all privileges on *.* to 'root'@'%' identified by 'mysql密码' with grant option;

FLUSH PRIVILEGES;

exit;

然后就没问题了

连接容器mysql

首先最好修改一下mysql版本, 默认8.0的mysql会报
SQLSTATE[HY000][2054] The server requested authentication method unknown to the client
的错误

github上有issuehttps://github.com/laradock/laradock/issues/1392

解决方法有2种 , 一种是继续用8.0 修改一下my.conf配置

另一种是降级到5.7版本

应该说是降级比较简单, 修改my.conf在issue上有详细说明, 这边不细说

  1. 更改MYSQL_VERSION5.7laradock / .env

    MYSQL_VERSION=5.7
  2. docker-compose build --no-cache mysql(这边我好像没法启动mysql容器,原因不明 暂时想到的方法是在一开始就修改版本, 我是安装了8.0之后再降级的)
  3. 修改laravel的.env

    DB_CONNECTION=mysql
    DB_HOST=mysql

不要填ip 不然会报错

Last modification:November 15th, 2018 at 09:35 am
If you think my article is useful to you, please feel free to appreciate