M1芯片搭建sail环境进行laravel开发
M1芯片搭建sail环境进行laravel开发
之前的pro暂时接触不到了,挤挤牙膏买了个air M1,看了好久的评价,最后还是被续航吸引了,但是laravel可是吃饭的家伙,听说是虚拟环境不兼容,看到已经适配了docker所以打算安装试试。
一. 安装Docker Desktop
1.推荐docker版本docker desktop 3.3.3
尝试自己跟着教程安装最新版本的Docker Desktop 跑到中途的时候会卡在
Executing: /tmp/apt-key-gpghome.v3wVg96BAY/gpg.1.sh –homedir /root/.gnupg –keyserver hkp://keyserver.ubuntu.com:80 –recv-keys E5267A6C
然后找了一圈,发现是3.3.3更新后产生的bug,详情在这。
所以推荐大家直接开始就下载3.3.3版本。
2.Docker镜像下载加速
按照Summer大大的教程就行,点击前往。
二.依赖说明
照搬下Summer大大的原话:
Sail 依赖以下三个东西:
- Docker Desktop
- docker-compose.yml 文件
- 构建容器的 Dockerfile
Docker Desktop 是底层软件,这里不再赘述。
Laravel,所以需要先创建 Laravel 。
docker-compose.yml 自 Laravel 8 起默认自带,存放于根目录下。老版本可通过 sail:publish
初始化此文件。
这里说一下老版本的项目:
首先肯定是按照教程升级laravel8,点击前往。
然后就是添加依赖
composer require laravel/sail --dev
运行 sail:install Artisan 命令。这个命令将会发布 Sail 的 docker-compose.yml 文件到您应用程序的根目录:
php artisan sail:install
这里大家可能会疑惑环境都没搭建好怎么运行composer,其实mac自带了php但是不是很完整,推荐先通过brew安装php:
1.安装Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2.通过search命令,看看都有什么版本的php安装。
brew search php
3.假设安装php@7.3,运行
brew install php@7.3
4.加入brew服务
brew services start php@7.3
5.添加环境到zsh或者bash
三.配置Docker环境
这里继续按照summer大大的教程走就行,点击前往。
(从第四步到第六步)
因为mysql还是不兼容,修改下docker-compose.yml,添加platform: linux/amd64即可,否则会报错
mysql:
platform: linux/amd64
image: 'mysql:8.0'
ports:
然后开心的运行就可以啦
./vendor/bin/sail up
更新下中文部分
使用了一段时间发现docker 不支持中文可以在dockerfile中加上
ENV LANG C.UTF-8
#改动后别忘了重新生成镜像
sail build --no-cache
或者通过root进入docker
docker exec -it --user root 0760563922c0 /bin/bash
#安装中文包
apt-get install language-pack-zh-hans
locale-gen zh_CN.UTF-8
echo "export LC_ALL=zh_CN.UTF-8">> /etc/profile
source /etc/profile
#查看下
locale
结语
大家有问题的话欢迎留言,第一次写文章,如有不足请多多包涵~
本作品采用《CC 协议》,转载必须注明作者和本文链接
按照官方文档可以直接curl 安装,不需要 本地composer
想请教下楼主,Mac 使用 Docker 开发 PHP 项目的访问速度如何呢?
可以的话,能贴一下机器配置不?
这里可以参照文档里的这一步,在已运行的应用中安装 Composer 依赖,这样就不用本地环境了
想问你第一次安装快吗?为啥我安装了1个小时》。。。如果用T子请问是不是要用全局模式
我和楼主是一样的配置 ,重新安装了docker ,sail up成功,但是页面加载都在5秒左右,api复杂点的都要10秒。不知道什么原因,docker还要设置什么东西么
sail镜像是arm版本的吗?
不太懂楼主所说的意思,虚拟环境不兼容,我的M1 用的是自带的apache+自己安装的PHP环境就可以跑了(自带的PHP安装扩展麻烦,Redis扩展)
请问楼主找不到一些阿里云源arm包怎么破
Failed to fetch mirrors.aliyun.com/ubuntu/dists/foc... 404 Not Found
这是在ssail up这一步上报错的