- 安装docker
官方网站比较慢,推荐在阿里云开源镜像站下载,安装完成查看一下版本
docker -v
=> Docker version 20.10.17, build 100c701
docker-compose -v
=> docker-compose version 1.29.2, build 5becea4c
- 安装laradock
Laradock 为 PHP 提供的完整 Docker 本地开发环境,有助于在 Docker 上运行 PHP 应用程序。
git clone https://github.com/Laradock/laradock.git
cd laradock
cp .env.example .env
vim .env
# 修改下面两个参数
=> WORKSPACE_TIMEZONE=PRC
=> WORKSPACE_NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
# 注:APP_CODE_PATH_HOST是你应用程序的目录,APP_CODE_PATH_CONTAINER是你容器映射的目录,我这里没做修改
- 接下来启动容器
docker-compose up -d redis mysql nginx workspace
我这里返回报错信息,没有报错的可以不看这里:
=> ERROR [internal] load metadata for docker.io/library/mysql:latest
因为我的是Mac M1,所以在 docker-compose.yml 添加参数
vim docker-compose.yml
搜索MySQL位置,/MySQL,MySQL尾部加上:platform: linux/x86_64
Failed to connect to raw.githubusercontent.com port 443: Connection refused
ERROR: Service 'workspace' failed to build : Build failed,
通过https://ipaddress.com/website/raw.githubusercontent.com,
查询 raw.githubusercontent.com 的真实 IP, 然后手工添加到 /etc/hosts, 比如 185.199.108.133 raw.githubusercontent.com
sudo vim /etc/hosts
加上:185.199.108.133 raw.githubusercontent.com
Service 'php-fpm' failed to build : Build failed
跟workspace报错一样,已经配置过了,需要多试几次,网络可能有问题
重新来一遍
docker-compose up -d redis mysql nginx workspace
等待一段时间.......
docker ps # 查看启动的服务
laradock_nginx、laradock_php-fpm、laradock_workspace、laradock_mysql、laradock_redis都启动成功
# 进入workspace
docker-compose exec workspace bash
# 进入的是/var/www目录,项目都部署在这个目录下面
# 查看composer配置的镜像
composer config -g repositories.packagist.org
# 修改composer镜像(全局配置(推荐))
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
尝试跑个demo
# 拉去laravel框架
composer create-project laravel/laravel laravel_demo
cd laravel_demo
composer install
cp .env_example .env
php artisan key:generate
vim .env
可以看到APP_KEY生成了key,顺便把APP_URL改一下
APP_URL=http://docker.laravel8.com
配置nginx
切换到/laradock/nginx/sites
cp default.conf docker.laravel8.com.conf
vim docker.laravel8.com.conf
修改你自己的配置:
server_name docker.laravel8.com;
root /var/www/laravel_demo/public;
重启nginx
docker-compose exec nginx bash
nginx -t
nginx -s reload
配置本地域名
sudo vim /etc/hosts
127.0.0.1 docker.laravel8.com
ping一下域名,能ping通说明成功了
ping docker.laravel8.com
访问:http://docker.laravel8.com/
接下来就可以愉快地开发了
laradock默认的mysql版本是latest,也就是mysql8,如果已经安装完mysql,要修改mysql的版本,则:
# 修改 .env 文件
MYSQL_VERSION=5.6.50
#停止mysql容器
docker-compose stop mysql
# 删除旧数据库数据
rm -rf ~/.laradock/data/mysql
# mysql存在时build,就是重建mysql,即构建新 mysql
docker-compose build mysql
# 开始mysql nginx容器
docker-compose up -d nginx mysql
# 进入mysql,查看现有 mysql 版本
docker-compose exec mysql bash
mysql -V
切换PHP版本
docker-compose build php-fpm workspace