Win10 下 Laravel 开发方法二:WSL+Docker
Docker大法听人说过,其神奇精妙,不可言;但其繁杂之设置,直教人望而却步。咳咳,所以这里分享如何快速设置Docker。
简单来讲,跟着这个转: https://vessel.shippingdocker.com/docs/get... , 如果你是用Linux……
Windows嘛,这个Package不支持,但是,我们有WSL啊,所以,步骤如下:
先行准备
- 下载DOCKER CE的Win10版本,并安装。
- 弄好WSL,参考 : 博客:Win10 下 Laravel 开发方法一:WSL+Valet , 只用保证 WSL在跑, Composer装上了,就好了
2a. 或者,你像我一样,喜欢Fedora/CentOS/RedHat (对的,WSL有Fedora和CentOS),辣么,参考这个: 博客:Fedora 下,如何快速设置本地环境(简单快速暴力法) (到第一步为止,剩下的不用做)
Win10-Docker设置
- 任务栏, Docker那条抹香鲸,右键点击,设置这样
- 设置,点Shared Drives,保证你的C盘打钩
- 把设置关了。
WSL-Docker设置
- 安装Docker-CE,
如果是Ubuntu,指示如下:
sudo apt-get update -y
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update -y
sudo apt-get install -y docker-ce
#安装 Python 和 PIP.
sudo apt-get install -y python python-pip
#安装 docker-compose
pip install --user docker-compose
Ubuntu记得,要把 $HOME/.local/bin
加入 PATH。
如果是Fedora,指示如下:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager \
--add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo
# DOCKER更新很慢,所以如果是29+版本的,用29版本
sudo dnf install docker-ce docker-compose --releasever=29
如果是CentOS,指示如下:
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 加 Epel
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install docker-ce docker-compose
- 设置DOCKER:
echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc
sudo usermod -aG docker $USER
- 看看管用不?
docker info docker-compose --version
- 储存设置: (某些时候Win10会崩溃,或者Terminal会崩溃,重启就好了)
sudo nano /etc/wsl.conf #把下面这行加进去 [automount] root = / options = "metadata"
然后装个假C盘
sudo mkdir /c sudo mount --bind /mnt/c /c #自动启动 echo "sudo mount --bind /mnt/c /c" >> ~/.bashrc && source ~/.bashrc
装Vessel
Vessel可以在几分钟内,设置起来一个DOCKER Container给你用,而且是为Laravel设计的,所以不用怕代码和DOCKER不同步的问题。默认安装包括: app, MySQL,Redis(本地开发必备,因为Vessel需要),Node
- 进入你的Laravel项目目录内(兴许其他PHP框架也能用?没试过)
composer require shipping-docker/vessel
php artisan vendor:publish --provider="Vessel\VesselServiceProvider"
- 保证你的DOCKER是正常运行的情况,
bash vessel init
./vessel start
- 访问
localhost
,应该就能看到你的项目了。 - 需要跑 artisan, yarn 什么的,这么跑:
./vessel artisan
,./vessel yarn
如果像我一样,想要用Fedora的,把 我这个 打包下载来,丢进去 docker/app 目录, 然后跑第五步。 我想测试看看Fedora跑的够稳了,我再放CentOS上去(其实我自己服务器跑的就是Fedora,没觉得有问题)。Fedora对于PHP开发太方便了,直接是最新的PHP,Nginx什么的,各种Extension齐全,phpunit,composer 这些是直接官方给的包。要把这些文件改给CentOS也很方便。
需要MariaDB,而不是MySQL的,把docker-compose.yml
里面换掉就好了。
后言
如果需要推到生产环境中用,那你直接用docker-composer
即可,不需要依赖 vessel。而且Vessel除了对Redis有依赖外,其他的都还好。当然,生产环境中,这个Dockerfile 里面的xdebug可以去掉了。 然后NGinx的设置,本人推荐: https://nginxconfig.io/ 。
Docker的好处就是放到那里去都是一样用,所以你这个设置,可以一直搬来搬去,但是运行环境却不会改变。我在研究Kubernete,希望这个能用上?
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: