从零开始搭建php轮子---laradock

1,099 阅读5分钟

首先安装 laradock 必须先安装 docker 以及 docker-compose

一、安装docker

安装docker 我使用 Docker 官方提供的一套便携的安装脚本

curl -fsSL get.docker.com -o get-docker.sh

下载脚本

chmod 755 get-docker.sh

使用这条命令修改执行权限

修改执行权限

使用这条命令下载安装脚本 接下来运行安装脚本,并添加 参数 --mirror 选项使用国内源进行安装

sudo sh get-docker.sh --mirror Aliyun

等待命令执行成功

等待脚本执行成功

启动docker

开机启动

sudo systemctl enable docker

启动 docker

sudo systemctl start docker

查看启动状态

查看docker启动状态

测试docker 是否安装正确

测试docker是否安装正确

如果能正常运行 hello-world 镜像证明安装成功

配置镜像加速器

新建 /etc/docker/daemon.json 文件 写入如下内容

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。

sudo systemctl daemon-reload | sudo systemctl restart docker

使用 docker info 命令查看是否设置成功

docker info

看到 Registry Mirrors已经变成我们设置的内容,代表成功了

这里docker就安装完成,接下来我们安装 Portainer

安装 Portainer

PortainerDocker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。

  • 创建数据卷

docker volume create portainer_data

  • 启动容器

docker 里面的镜像都可以在 docker镜像网站 这个网站上面找到

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:latest

因为我使用的是 中文汉化版本 所以在运行命令的基础上 再挂载多了一个汉化的数据卷,完整的命令如下:(没有/data/portainer/portainer-cn/public这里目录不要执行)

docker run -d -p 9005:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /data/portainer/portainer-cn:/public portainer/portainer:1.20.1

这里我不想用默认端口,就换了一下9005端口哈

挂载的中文数据卷

运行成功portainer

设置密码之后 点击 创建用户 ,创建完之后 ,选择 本地 docker 环境 其他三个选项可自行研究

选择本地docker环境

点击 连接 即可进入

portainer

这里可以看到安装的容器,镜像,堆栈,网络等等

到这里的portainer就安装完毕了,下一步我们安装 docker-compose

安装 docker-compose

安装 docker-compose 这里我使用 pip3 安装

下载pip3

apt install python3-pip

安装docker-compose

sudo pip3 install -U docker-compose

可以看到类似如下输出,说明安装成功。

安装成功docker-compose

使用 docker-compose --verison 查看

docker-compose版本

能正常输出即可

接下来 就可以安装 laradock

安装 laradock

使用 laradock的官方文档 下载安装脚本

git clone github.com/Laradock/la…

下载时间有点长,慢慢等待

等待laradock

下载完成

下载完成

cd 进入 目录

cd laradock

复制配置文件

cp env-example .env

在顶部,将 APP_CODE_PATH_HOST 变量更改为自己的项目路径

下载 larabbs 项目

这里我下载了laravel-bbs项目 首先新建文件夹 project 克隆项目

laravel-bbs

复制 larabbs 项目配置文件

cp .env.example .env

修改 larabbs 项目权限

chmod -R 777 larabbs

完成之后下载项目告一段落


替换laradock的配置文件项目路径为 自己服务器实际的项目路径

文件结构如下

* laradock
* project-z

文件目录

修改项目路径

配置完成之后 进入 laradock 文件夹中,执行命令

docker-compose up -d nginx mysql phpmyadmin redis workspace

这里只启动了nginx,mysql,redis等只是laravel项目中需要用到的镜像

laradock还包含有

Jenkins -- 自动化部署
SonarQube -- 代码检查
ElasticSearch -- 搜索引擎

这些也都十分值得尝试,可以自己慢慢研究一番

执行启动过程中,如有遇到下载错误的,重复执行启动命令即可

安装成功laradock

接下来 配置项目站点。进入 cd 到 laradock项目中

cd /laradock/nginx/sites

nginx站点

复制一份laravel站点的配置文件

cp laravel.conf.example laravel-bbs.conf

修改 复制的配置文件 root 路径

修改root路径

接下来重启 laradock_nginx_1 容器

重启 laradock_nginx_1 容器

紧接着进入到 laradock_workspace_1 容器中

laradock_workspace_1

点击控制台 -- 点击连接

控制台

这里需要执行composer install 安装laravel项目所需要的包

composer install

composer

接着执行

php artisan key:generate

接着登录 phpmyadmin

phpmyadmin

用 域名或者ip 加上8081 端口号即可打开登录界面

phpmyadmin登录界面

服务器写入mysql

登录名

mysql 的root 密码可以查看容器的启动的环境变量

mysql环境变量

登录进去之后,新建数据库,名称随意,开心就好

新建数据库

修改larabbs 配置文件

修改mysql 和 redis 的主机地址为 容器的ip地址,因为都属于同一堆栈,同一的网络环境中,所以网络可以互通

修改larabbs配置文件

修改完之后 重启 laradock_nginx_1 laradock_php-fpm_1 laradock_workspace_1 三个容器

重启容器

回到 laradock_workspace_1 容器的控制台界面,执行数据迁移文件,并利用种子生产数据

php artisan migrate --seed

接着就可以访问项目试试了,没想到报错了,查了一下是直接用ip访问报错

运行项目

  • 想了一下,不用ip访问也是可以的,本地配置一下hosts代理到我的主机地址就可以了

hosts文件修改

  • 终于项目完美运行起来了

项目运行起来了

注意

如果是 windows+虚拟机+共享文件夹,启动的laradock 时候需要修改配置文件,将共享文件夹的路径挂载到容器里面

vim docker-compose.yml

php-fpm,nginx,workspace 三个容器的环境都需要配置