作者:mobiledu2502931637 | 来源:互联网 | 2023-05-18 13:14
laradock笔记官网文档中文文档装置步骤首先将Laradock我的项目代码克隆到本地:{代码}进入laradock目录将env-example重命名为.env:{代码}而后在.env中批改镜像构建过程中Linux软件源为国内镜像免得镜像构建过程中呈现网络超时问题:{代码}构建镜像&启动容器:{代码}nginx镜像构建在
laradock 笔记
装置步骤
- 首先将 Laradock 我的项目代码克隆到本地:
git clone https://github.com/Laradock/laradock.git
- 进入 laradock 目录将 env-example 重命名为 .env:
cp env-example .env
而后在 .env 中批改镜像构建过程中 Linux 软件源为国内镜像免得镜像构建过程中呈现网络超时问题:
CHANGE_SOURCE
# If you need to change the sources (i.e. to China), set CHANGE_SOURCE to true
CHANGE_SOURCE=true
# Set CHANGE_SOURCE and UBUNTU_SOURCE option if you want to change the Ubuntu system sources.list file.
UBUNTU_SOURCE=aliyun
- 构建镜像 & 启动容器:
docker-compose up -d nginx mysql redis beanstalkd
nginx 镜像构建在 php-fpm 之上,php-fpm 构建在 workspace 之上,所以启动 nginx 会先启动 workspace 和 php-fpm。
如果指定端口曾经被占用,运行上述命令会报错,敞开相应的服务再从新运行上述命令即可。
如果在 Windows 零碎中上述指令构建镜像过程中报错:
/tmp/sources.sh: not found
可参考这个 issue 解决:https://github.com/laradock/l…。
- 关上 Laravel 我的项目的 .env 文件并增加如下配置:
DB_HOST=mysql
# 这里填写容器的名称(比方:laradock_redis_1)或者容器的 ip 地址(比方:172.28.0.5)也能够
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
其余命令
docker-compose up -d nginx mysql redis beanstalkd
# 比方:从新构建 mysql 容器
docker-compose build mysql
- 减少一个我的项目之后,重启 Docker 的 nginx
docker-compose up -d nginx
# 列出正在运行的容器
docker ps
# 如果你只想看以后这个我的项目的容器,你也能够执行上面这个命令
docker-compose ps
- 重启以后这个我的项目中的所有容器(如果你不想一个一个的开启每一个容器,能够不便的执行这条命令)
docker-compose restart
# 敞开所有正在运行的容器
docker-compose stop
# 进行单个容器
docker-compose stop {container-name}
# 应用上面的命令进入任意容器
docker-compose exec {container-name} bash
# 进入 mysql 容器
docker-compose exec mysql bash
# 进入 mysql 并在 mysql 容器中应用命令提示符
docker-compose exec mysql mysql -u homestead -psecret
# 进入 workspace 容器,执行比方(Artisan, Composer, PHPUnit, Gulp, ...)等命令
docker-compose exec workspace bash
docker-compose down
- 查看日志文件
NGINX 日志文件存储在logs/nginx目录中
然而要查看其余容器(Mysql,PHP-FPM,…)的日志,能够运行以下命令
docker-compose logs {container-name}
docker-compose logs -f {container-name}
在 laradock 中装置 swoole
在本地装置的话,以 Laradock 为例,须要在 laradock 目录下的 .env 中将上面两行配置值设置为 true:
WORKSPACE_INSTALL_SWOOLE=true
PHP_FPM_INSTALL_SWOOLE=true
而后运行 docker-compose build php-fpm workspace
从新构建 Docker 容器,构建实现后重启这两个容器,进入 workspace 容器,运行 php -m
查看 Swoole 是否装置胜利,如果扩大列表蕴含 swoole 则示意装置胜利。
其余须要注意事项
在 laravel
框架中,如果配置不失效,请留神清理下 laravel
的缓存
php artisan config:clear
查看下是否开启了 5200 端口
装置 netstat 命令,查看端口
apt-get update
apt-get install net-tools
netstat -ntlp
netstat -ant | grep 5200
端口映射开启形式
- 进入
laradock/docker-compose.yml
在 workspace
下的 ports
中新增
ports:
- "${WORKSPACE_SSH_PORT}:22"
- "${WORKSPACE_VUE_CLI_SERVE_HOST_PORT}:8080"
- "${WORKSPACE_VUE_CLI_UI_HOST_PORT}:8000"
- "${WORKSPACE_PORT}:5200" /**这一行为新增的行,也能够间接在这里加 5200:5200 这样加了之后,就不再须要在 .env 中设置变量了**/
- 进入
.env
在 WORKSPACE
下最初一行减少
WORKSPACE_AST_VERSION=1.0.3
WORKSPACE_VUE_CLI_SERVE_HOST_PORT=8080
WORKSPACE_VUE_CLI_UI_HOST_PORT=8001
WORKSPACE_INSTALL_GIT_PROMPT=false
WORKSPACE_PORT=5200 /**这一行为新增的行,其实就是设置步骤 1 中的变量**/
有些博客说还须要在 laradock/workspace/Dockerfile 文件的最初增加一行,申明凋谢端口: EXPOSE 5200,这里,我并没有做这一步,同样也胜利了,如果你没有胜利,你加上去之后再试试看吧
- 强制从新创立 workspace 容器
docker-compose up -d --force-recreate workspace
- 重启
docker-compose
docker-compose restart
docker ps
- 测试端口是否开明胜利
telnet 127.0.0.1 5200
# 或者间接查看容器的端口列表中是否含有你所须要开明的端口
docker port {container-name}
# 比方,如下
docker port laradock_workspace_1
原文连贯地址