首页
留言
动态
归档
推荐
音乐
工具
Search
1
Emby公益服-上万部电影电视剧免费看
55,769 阅读
2
openwrt-docker部署lxk0301京东自动签到脚本
12,093 阅读
3
QuantumultX-京东签到撸京东豆
10,347 阅读
4
LXK0301京东签到脚本-自动提交互助码
8,972 阅读
5
微信-域名被封监测以及自动更换被封域名
8,723 阅读
随便写写
科学上网
Web开发
瞎折腾
登录
Search
标签搜索
quantumultx
laravel
openwrt
laravel nova
laradock
telegram
薅羊毛
google adsense
jd_scripts
京东签到
ubuntu
oh-my-zsh
web开发环境
nginx
工具
shadowsocks shadowsocksR
RBAC
权限管理
内网穿透
Python
orzlee
累计撰写
43
篇文章
累计收到
595
条评论
首页
栏目
随便写写
科学上网
Web开发
瞎折腾
页面
留言
动态
归档
推荐
音乐
工具
搜索到
1
篇与
laradoc
的结果
2020-03-21
Laradock-部署本地开发环境
前言 之前laravel开发环境一直都是homestead部署,最近发现docker蛮火的。这段时间没什么事,稍微研究了一番。 首先需要理解docker给我们解决了什么问题。 对于开发者来说,最重要的就是轻便。docker中的容器将每个进程单独分割,互不影响但又有使用关联。很神奇,试想一下homestead,它是一台虚拟机,一旦启动就会占用固定的资源,哪怕资源在虚拟机中没有使用,你也是无法干预的,在虚拟器启动的那刻就已经分配。这种情况会造成很多资源浪费。 使用docker,把每个应用/服务都单个放入容器中,不会占用固定资源。更多空闲资源可以被系统利用,不会浪费掉。 其实docker最大的特点是解决部署时的方便。项目上线需要生产环境,特别是分布式服务器,每台都要独立安装,但是使用docker部署起来就会相当方便,编写好docker-compose.yml 和各个 服务/应用的 Dockerfile 文件,几行命令就能部署好整个生产环境。 以上是我目前对docker的愚解。 安装docker 这部看docker文档就好了,很详细。 我是用的是windows,安装程序下一步... windows系统和MacOS使用安装程序不需要单独安装docker-compose。 安装laradock 其实laradock文档中也很详细,直接clone代码就好了。 说说cp env-example .env文件吧。 ### 主要是项目目录,你开发项目所在目录,如果在同目录下(多项目配置)则不用动 APP_CODE_PATH_HOST=../ ### 项目在容器中挂载路径 APP_CODE_PATH_CONTAINER=/var/www ### 这个比较重要,数据卷存方位置,例如你的mysql数据库文件,redis持久化文件等(windows在C:\Users\用户名\.laradock\data) DATA_PATH_HOST=~/.laradock/data ... ### workspace这个大项中,很多开发者用不到 ### 像是PYTHON,NODE等我都会不安装 ### 服务器上部署也是,不需要尽量别安装 WORKSPACE_INSTALL_NODE=true ### 开启zsh SHELL_OH_MY_ZSH=true ### 开发环境需要XDebug就开启(反正我是需要) WORKSPACE_INSTALL_XDEBUG=true ... ### php版本 PHP_VERSION=7.4 ... ### 是否修改源,没翻墙还是需要 CHANGE_SOURCE=false ### ubuntu源 UBUNTU_SOURCE=aliyun ... ### php5.6含一下注意,redis扩展不支持,会报错 PHP_FPM_INSTALL_PHPREDIS=true ### 如果WORKSPACE_INSTALL_XDEBUG=true 开启了 ### 那么这边也需要开启 PHP_FPM_INSTALL_XDEBUG=true ... ### 把我坑惨了,Supervisor是php-woker提供的,配置文件也在里面,如果不开启的话,php-woker容器中的php是不包含redis扩展的 PHP_WORKER_INSTALL_REDIS=true ... ### mysql配置,按自己需求该 MYSQL_VERSION=5.7 MYSQL_DATABASE=homestead MYSQL_USER=homestead MYSQL_PASSWORD=secret ### mysql外部端口,本地我已经装了mysql 3306、33060都已经被占用 MYSQL_PORT=33061 MYSQL_ROOT_PASSWORD=root ### 这里是多数据库配置,laradock/mysql/docker-entrypoint-initdb.d目录下对照样本加 MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d ... ### nginx配置 NGINX_HOST_HTTP_PORT=80 NGINX_HOST_HTTPS_PORT=443 ### 日志 NGINX_HOST_LOG_PATH=./logs/nginx/ ### 多站点配置目录,找样本加 NGINX_SITES_PATH=./nginx/sites/ NGINX_PHP_UPSTREAM_CONTAINER=php-fpm NGINX_PHP_UPSTREAM_PORT=9000 NGINX_SSL_PATH=./nginx/ssl/ ... 如果你开启了oh-my-zsh,默认是没有任何插件的,皮肤也是默认,laradock没有露出.zshrc配置文件文件,只能修改workspace的Dockerfile文件了,在Dockerfile文件找到下面代码(我是按照之前写得一篇文章oh-my-zsh强大的zsh配置管理配置安装的): ########################################################################### # Oh My ZSH! ########################################################################### USER root ARG SHELL_OH_MY_ZSH=false RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ apt install -y zsh \ ;fi USER laradock RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) --keep-zshrc" && \ git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && \ sed -i -r 's/^plugins=\(.*?\)$/plugins=(laravel5 zsh-syntax-highlighting zsh-autosuggestions)/' /home/laradock/.zshrc && \ sed -i -r 's/^ZSH_THEME=\".*?\"$/ZSH_THEME="ys"/' /home/laradock/.zshrc && \ echo '\n\ bindkey "^[OB" down-line-or-search\n\ bindkey "^[OC" forward-char\n\ bindkey "^[OD" backward-char\n\ bindkey "^[OF" end-of-line\n\ bindkey "^[OH" beginning-of-line\n\ bindkey "^[[1~" beginning-of-line\n\ bindkey "^[[3~" delete-char\n\ bindkey "^[[4~" end-of-line\n\ bindkey "^[[5~" up-line-or-history\n\ bindkey "^[[6~" down-line-or-history\n\ bindkey "^?" backward-delete-char\n' >> /home/laradock/.zshrc \ ;fi 可以自定义安装插件,修改皮肤。git clone ...下载插件,记得在sed -i -r 's/^plugins=\(.*?\)$/plugins=(laravel5 zsh-syntax-highlighting zsh-autosuggestions)/' /home/laradock/.zshrc && \中加载你的插件,sed -i -r 's/^ZSH_THEME=\".*?\"$/ZSH_THEME="ys"/' /home/laradock/.zshrc && \ 修改皮肤(例如我这里修改的是ys皮肤,echo '\n\ ...默认绑定了一些快捷键,不需要可以删掉。有兴趣可以查看我的文章oh-my-zsh强大的zsh配置管理)。 其他没什么安装需要注意的了,执行: ### 启动容器 mysql redis nginx php-worker ### -d参数是后台运行 docker-compose up -d mysql redis nginx php-worker workspace、php 默认会自己启动,因为容器都依赖它们 如果你没有修改COMPOSE_FILE=docker-compose.yml配置文件的话,laradock项目中所有镜像全部会安装 !!!0.0!!!。 启动之后你可以进入容器: ### 就像虚拟机一样,很亲切 ### 像composer,git等命令都有,不需要单独安装 docker-compose exec workspace bash 进入workspace后执行: cd 你的项目名称/ php artisan migrate ... workspace可以换成你想操作的(已经启动)任何容器名称(mysql,nginx...),非常方便操作。 并非完美 laradock在修改配置后重新docker-compose build xxx又会重新安装/编译一次,非常耗时,特别是workspace容器,简直恐怖。这点没有虚拟机来得方便。 docker在MacOS中存在文件读取缓慢的问题。 mysql或者其他数据库在容器中部署还存在一定的安全隐患。 结语 其实自己手动折腾一遍之后并不像想象中那么难。 仔细查看Dockerfile文件后你会发现里面就是各种安装部署命令,只是用docker特定的语法包裹了。docker安装容器就是执行你编写好的命令。 服务器部署直接一套docker就搞定,而且服务器项目比较杂的话非常适合,毕竟各种项目(php,java,python...)环境在服务器上搭建难免出现奇奇怪怪的问题,在容器中的话互不干扰,横向扩展服务器简直不能再方便了。
2020年03月21日
1,883 阅读
0 评论
1 点赞