Win10 下 Laravel 开发方法二:WSL+Docker

Docker大法听人说过,其神奇精妙,不可言;但其繁杂之设置,直教人望而却步。咳咳,所以这里分享如何快速设置Docker。

简单来讲,跟着这个转: https://vessel.shippingdocker.com/docs/get... , 如果你是用Linux……

Windows嘛,这个Package不支持,但是,我们有WSL啊,所以,步骤如下:

先行准备

  1. 下载DOCKER CE的Win10版本,并安装。
  2. 弄好WSL,参考 : 博客:Win10 下 Laravel 开发方法一:WSL+Valet , 只用保证 WSL在跑, Composer装上了,就好了
    2a. 或者,你像我一样,喜欢Fedora/CentOS/RedHat (对的,WSL有Fedora和CentOS),辣么,参考这个: 博客:Fedora 下,如何快速设置本地环境(简单快速暴力法) (到第一步为止,剩下的不用做)

Win10-Docker设置

翻译自

  1. 任务栏, Docker那条抹香鲸,右键点击,设置这样
    这个
  2. 设置,点Shared Drives,保证你的C盘打钩
  3. 把设置关了。

WSL-Docker设置

  1. 安装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
  1. 设置DOCKER:
    echo "export DOCKER_HOST=tcp://localhost:2375" >> ~/.bashrc && source ~/.bashrc
    sudo usermod -aG docker $USER
  2. 看看管用不?
    docker info
    docker-compose --version
  3. 储存设置: (某些时候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

  1. 进入你的Laravel项目目录内(兴许其他PHP框架也能用?没试过)
  2. composer require shipping-docker/vessel
  3. php artisan vendor:publish --provider="Vessel\VesselServiceProvider"
  4. 保证你的DOCKER是正常运行的情况, bash vessel init
  5. ./vessel start
  6. 访问 localhost ,应该就能看到你的项目了。
  7. 需要跑 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 协议》,转载必须注明作者和本文链接
Software Engineer Practices above all 软件开发标准高于一切
Shuyi
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!