laradock目录说明-服务说明

在坚持Docker推动的关注分离原则时,Laradock在自己的Container上运行每个软件。您可以像任何容器一样打开/关闭任意数量的实例,而不必担心配置,一切都像魅力一样。

数据库引擎: MySQL – MariaDB – Percona – MongoDB – Neo4j – RethinkDB – MSSQL – PostgreSQL – Postgres-PostGIS。
数据库管理: PhpMyAdmin – Adminer – PgAdmin
缓存引擎: Redis – Memcached – Aerospike
PHP服务器: NGINX – Apache2 – Caddy
PHP编译器: PHP FPM – HHVM
消息队列: Beanstalkd – RabbitMQ – PHP工作者
排队管理: Beanstalkd控制台 – RabbitMQ控制台
随机工具: Mailu – HAProxy – Certbot – Blackfire – Selenium – Jenkins – ElasticSearch – Kibana – Grafana – Gitlab – Mailhog – MailDev – Minio – Varnish – Swoole – NetData – Portainer – Laravel Echo – Phalcon

Laradock将Workspace Image作为开发环境引入。它包含一组丰富的有用工具,所有这些工具都经过预先配置,可以与您选择的几乎任何容器和工具组合工作和集成.

工作区图像工具 PHP CLI – Composer – Git – Linuxbrew – Node – V8JS – Gulp – SQLite – xDebug – Envoy – Deployer – Vim – Yarn – SOAP – Drush

提高MacOS的速度

Tip: 更多见官网文档

在撰写本文时,Mac上的Docker 很慢。特别是对于大型项目,这可能是一个问题。问题是比2016年3月更早 – 因为这是一个长期存在的问题,我们将其包含在此处的文档中。

因此,与Linux相比,使用osxfs将代码共享到Docker容器中的性能非常差。可能有一些解决方法:

解决方法A:使用小艇
Dinghy使用docker-machine创建自己的VM,它不会修改现有的docker-machine VM。

快速设置giude,(我们建议您查看他们的文档)

1) brew tap codekitchen/dinghy

2) brew install dinghy

3)dinghy create –provider virtualbox(必须安装虚拟机,但如果您愿意,它们支持其他提供商)

4)完成上述命令后,它将显示一些env变量,将它们复制到bash配置文件或zsh或..(这将指示docker使用在VM内运行的服务器)

5) docker-compose up …

你可以在具有相同的使用任何时间有或无搬运工同步运行laradock .env和docker-compose.yml,因为当使用搬运工同步的配置被自动忽略。
您可以检查sync.sh脚本以了解每个命令,甚至添加自定义命令。
如果容器无法访问docker-sync上的文件,则可能需要在该容器的Dockerfile上设置id为1000的用户(这是nginx和php-fpm在laradock上配置的UID)。或者,您可以将权限更改为777,但不建议这样做 更多-docker-sync文档

Laradock有两个基本图像(Workspace和php-fpm,主要由以加快您的计算机上生成时间。

目录抓取时间: 2018年11月16日16:50:06

├── LICENSE
├── adminer Adminer替换phpMyAdmin
├── aerospike Aerospike(以下简称AS)是一个以分布式为核心基础,可基于行随机存取内存中索引、数据或SSD存储中数据的数据库
├── apache2
├── aws 亚马逊
├── beanstalkd Beanstalkd,一个高性能、轻量级的分布式内存队列系统
├── beanstalkd-console
├── caddy caddy是一个用go语言开发的服务器,可用作web端
├── certbot Certbot是EFF加密整个互联网的一部分。通过Web进行安全通信依赖于HTTPS,这需要使用数字证书,让浏览器验证Web服务器的身份
├── docker-compose.sync.yml
├── docker-compose.yml
├── docker-registry
├── docker-sync.yml
├── docker-web-ui
├── elasticsearch ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口
├── env-example
├── gitlab
├── grafana 自动创建监控图
├── haproxy haproxy是一款非常的专业的全7层的反向代理负载均衡器
├── hhvm HHVM (HipHop Virtual Machine)会将PHP代码转换成高级别的字节码(通常称为中间语言)。然后在运行时通过即时(JIT)编译器将这些字节码转换为x64的机器码。在这些方面,HHVM十分类似于C#的CLR和Java的JVM
├── ide-codiad Codiad是一个基于Web的IDE框架,占用空间小,需求量小。
├── ide-icecoder
├── ide-theia
├── ide-webide
├── ipython
├── jenkins
├── jupyterhub
├── kibana
├── laravel-echo-server
├── logs
├── maildev
├── mailhog
├── mariadb
├── memcached
├── minio
├── mongo
├── mongo-webui
├── mssql
├── mysql
├── neo4j
├── nginx
├── percona
├── pgadmin
├── php-fpm
├── php-worker
├── phpmyadmin
├── portainer
├── postgres
├── postgres-postgis
├── rabbitmq
├── redis
├── rethinkdb
├── selenium
├── solr
├── sync.sh
├── thumbor
├── travis-build.sh
├── varnish
└── workspace

相关资料

aerospike-官网
Certbot-官网
grafana-官网
codiad-官网

Aerospike使用介绍
PHP 使用 ElasticSearch 做搜索

walle 瓦力-安装部署

部署时间: 2018年10月31日
部署环境:centos_1708 php7.2 nginx (php5.6无法完成composer install 会提示报php版本过低)

数据库中配置: config/local.php 后面的数据库信息(由于系统是基于YII 可能有指定的环境配置环境 我这就是直接改这个文件了) 文档中说是改config/web.php 但是改了之后还是无效

'dsn'       => isset($_ENV['WALLE_DB_DSN'])  ? $_ENV['WALLE_DB_DSN']  : 'mysql:host=127.0.0.1;dbname=walle',
'username'  => isset($_ENV['WALLE_DB_USER']) ? $_ENV['WALLE_DB_USER'] : 'root',
'password'  => isset($_ENV['WALLE_DB_PASS']) ? $_ENV['WALLE_DB_PASS'] : '',

安装中主要遇到是php版本和数据库配置信息的问题. 其它的步骤参考 官网-安装步骤文档

相关资料

walle-web github
代码部署工具walle
Yii2 使用 .env 来配置项目环境变量 还没测试这个目测好像不符合瓦力这个项目

centos安装docker及docker-compose

在vbox中建立系统与项目线上相同的环境

参照官网文档(资料1)安装步骤, step2不一样.

step1

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

step2

tip: 官方的yum源地址安装下载时非常慢

sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

step3

sudo yum-config-manager --enable docker-ce-edge

step4

sudo yum install docker-ce

step5

yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION STRING>
sudo systemctl start docker
sudo docker run hello-world

docker-compose

Tip: 加速版安装参考[资料3], 官方版参考[资料4]

curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

相关资料

资料1-Get Docker CE for CentOS
资料2-CentOS 安装 Docker CE
资料3-安装 Docker Compose
资料4-Install Compose

阿里云https(SSL)证书过期后更新

项目的证书过期了(一年), 本以为按之前替换下文件就OK了. 但是出现 无法解析IP地址, URL内容出错问题.

URL内容出错?

使用的文件验证方式, 需要先项目中存放对应的文件 那么阿里云后台才可以获取到证书文件. 免费的是一个证书只能对应一个子域名. 后台证书设置绑定域名 www.xxxx.com 但是阿里云却会把域名变成指向 xxxx.com 也就是忽略www了. 那么Nginx-vhost中没有配置xxxx.com域名. 所以导致URL内容访问错误问题.(去年配置的时候, www.xxxx.com 对应绑定的就www.xxxx.com, 估计是阿里云中的策略发生改变了.)

处理方式1: www.xxxx.com xxxx.com vhost配置同一个项目 处理方式2: 使用DNS验证方式.


解析IP地址?

域名没有在后台做解析.



继续阅读

上线测试和上线生产流程(开发到测试到生产部署)-持续集成

开发到部署流程繁琐 如何可以自动化部署, 项目可以自由版本回滚切换. 集成和持续交付 CI/CD

讨论记录 2018年10月09日15:34:13

开发到线上部署流程

M:

  1. 开发提交项目代码, 及部署文档, 发给测试人员.
  2. 测试人员根据部署文档, 在线上测试机器部署及测试.
  3. 如果测试没有问题, 将直接在生产中部署.
  4. 如果测试有问题, 退回给开发 开发修复并 svn tags 然后 测试人员使用 svn witch 切换到对应的 tags 再测试.
  5. 直到测试没有问题. 部署线上生产.

D: FTP

D: ftp 上传代码,代码上传到了一台叫发布机的服务器去了,好像是命名叫发布机吧,具体也忘了,但是 刷新网页半天没显示,后面才知道并不是实时的。 好像是会自动检测代码,如果有问题的话是不会最终到线上版

X: 开发功能-创建分支-完成提交合并-创建新的发布版本-登录测试机-拉取代码-测试-有bug改bug没bug就合并发布版本到master-提交-同步数据库字段-登录生产机-拉取代码-清除数据库表缓存-如有问题创建修复补丁-完成后提交合并

D: 三个概念,持续集成,数据库迁移,数据填充。我觉得哇,laravel中的数据库迁移篇里的工具真的好用。

数据库结构同步

M:

方式1 通过文件来每次项目提交已项目版本号为名字 project_1.0.1.sql
方式2 通过navicat里的数据结构对比

X: 改数据结构-先到erwin结构里面修改-到数据库navicat改-在navicat历史记录里面将sql复制到md文件-每次上线都会先看md文件是否有sql需要执行-复制sql到正式库执行-完成

D: 都可以一行命令同步

G: 大佬级别啊~你们… 能不能让我听懂的

关于开发数据同步

M: 其实数据结构还好说, 有些程序需要的数据同步才麻烦(这种数据我称为开发数据) 比如分类的数据 这种数据线线上可以添加. 会导致id不一致pid这些值.

D: 数据同步那是另外一回事, 测试阶段,数据填充工具很方便

相关内容

大家公司中上线测试和上线生产流程是怎么走的?
Jenkins+Ansible+Gitlab自动化部署三剑客
Laravel 实践之路: 数据库迁移与数据填充

相关部署平台

walle 瓦力
jenkins
Test and Deploy with Confidence
flow
teamcity
gitlab-ci
codeship
脉冲云

相关资料

靠谱好用的 CI 框架选哪家
持续集成是什么
如何理解持续集成、持续交付、持续部署