Compare commits
102 Commits
Author | SHA1 | Date | |
---|---|---|---|
3473b788cf | |||
1a5c7a7b3f | |||
a3039958e3 | |||
b01bae59fc | |||
92dc3be3b1 | |||
650f6a89c6 | |||
041d134f69 | |||
79ff092105 | |||
ffce0f93d5 | |||
a2d154c30a | |||
59a22aedac | |||
b42ad1ae7e | |||
07d6ec85ca | |||
adfb559521 | |||
05e0e9c817 | |||
ab53db1897 | |||
6dcb174012 | |||
38eeae8791 | |||
de914d106f | |||
6c71d6d84f | |||
7b2ff6dab8 | |||
1e5d604470 | |||
314e43bb79 | |||
ea047e2587 | |||
d441427852 | |||
227c8da17c | |||
14b97caa57 | |||
6ba76da709 | |||
294fe31a80 | |||
78be0b577e | |||
5a980b1c97 | |||
3ad474a2d9 | |||
0ad1e58bf0 | |||
0cf12c7383 | |||
4e0af7e0cb | |||
d6b091df96 | |||
506fe598cd | |||
b252558560 | |||
29d714a849 | |||
f9fd391879 | |||
740b4647a3 | |||
f8d3c58d6a | |||
509cb9ac2e | |||
f2aea63d64 | |||
9aa8813a3d | |||
58af86a582 | |||
12ba6bbbae | |||
9fb50b2c6b | |||
df1a019f75 | |||
c68f70d2a7 | |||
002b147b23 | |||
314034255a | |||
3c8861d1d2 | |||
2d51548879 | |||
4aa3902f32 | |||
1afad7f14c | |||
00d48fff51 | |||
9bd70aadc8 | |||
fb049ef300 | |||
e75da747a9 | |||
dd48592d8b | |||
d57a0c3888 | |||
7a13e4a343 | |||
4e7e003e87 | |||
208b2e7c0a | |||
9611fdb58f | |||
9a77c8e276 | |||
080cc2a88a | |||
b648f1ca58 | |||
cfc81fca64 | |||
928451ae88 | |||
95ef5e1e70 | |||
c324114b7a | |||
5ee1fdd71b | |||
7680e29bc5 | |||
b42f24c50d | |||
1c22c009e7 | |||
380c7bd1ec | |||
e8562272b0 | |||
1614f0fb2d | |||
5232d6a84f | |||
391602a811 | |||
b4760ac703 | |||
aabb0cded8 | |||
d3a6116a42 | |||
eb81dfc1be | |||
a6e04aa659 | |||
93504a714d | |||
d8a4537efb | |||
28b4077a49 | |||
651430c7a9 | |||
3be9dee1c7 | |||
8ef37a71fb | |||
5210ca7ccf | |||
a30bf83269 | |||
1fdf800988 | |||
82cbad75d4 | |||
6111ca5ff7 | |||
b393996d44 | |||
5ebb061b70 | |||
ad49981dd6 | |||
e135fbb970 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
|
.idea
|
||||||
/logs
|
/logs
|
||||||
/data
|
/data
|
||||||
.env
|
.env
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
# Contributing to LaraDock
|
# Contributing to LaraDock
|
||||||
|
|
||||||
Your contribution is more than welcome. Let's keep LaraDock amazing.
|
Your contribution is more than welcome. Let's keep LaraDock amazing.
|
||||||
@ -54,9 +52,21 @@ Help us to maximize the effort we can spend fixing issues and adding new
|
|||||||
features, by not reporting duplicate issues.
|
features, by not reporting duplicate issues.
|
||||||
|
|
||||||
|
|
||||||
|
### Before Submitting a Pull Request (PR)
|
||||||
|
|
||||||
### Submitting a Pull Request (PR)
|
Always Test everything and make sure its working:
|
||||||
Before you submit your pull request consider the following guidelines:
|
|
||||||
|
- Pull the latest updates (or fork of you don’t have permission)
|
||||||
|
- Before editing anything:
|
||||||
|
- Test building the container (docker-compose build --no-cache container-name) build with no cache first.
|
||||||
|
- Test running the container with some other containers in real app and see of everything is working fine.
|
||||||
|
- Now edit the container (edit section by section and test rebuilding the container after every edited section)
|
||||||
|
- Testing building the container (docker-compose build container-name) with no errors.
|
||||||
|
- Test it in real App.
|
||||||
|
|
||||||
|
|
||||||
|
### Submitting a PR
|
||||||
|
Consider the following guidelines:
|
||||||
|
|
||||||
* Search [GitHub](https://github.com/LaraDock/laradock/pulls) for an open or closed Pull Request that relates to your submission. You don't want to duplicate effort.
|
* Search [GitHub](https://github.com/LaraDock/laradock/pulls) for an open or closed Pull Request that relates to your submission. You don't want to duplicate effort.
|
||||||
|
|
||||||
@ -93,7 +103,7 @@ git push origin my-fix-branch -f
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
### After your pull request is merged
|
### After your PR is merged
|
||||||
|
|
||||||
After your pull request is merged, you can safely delete your branch and pull the changes
|
After your pull request is merged, you can safely delete your branch and pull the changes
|
||||||
from the main (upstream) repository:
|
from the main (upstream) repository:
|
||||||
@ -127,4 +137,4 @@ from the main (upstream) repository:
|
|||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
### Happy Coding :)
|
### Happy Coding :)
|
||||||
|
983
README-zh.md
Normal file
983
README-zh.md
Normal file
@ -0,0 +1,983 @@
|
|||||||
|
# LaraDock
|
||||||
|
|
||||||
|
[](http://zalt.me)
|
||||||
|
|
||||||
|
[](https://gitter.im/LaraDock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||||
|
|
||||||
|
LaraDock能够帮你在**Docker**上快速搭建**Laravel**应用。
|
||||||
|
<br>
|
||||||
|
就像Laravel Homestead一样,但是Docker替换了Vagrant。
|
||||||
|
>先在Docker上使用LaraDock,然后再学习它们。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
<br>
|
||||||
|
## 目录
|
||||||
|
|
||||||
|
- [Intro](#Intro)
|
||||||
|
- [Features](#features)
|
||||||
|
- [Supported Software's](#Supported-Containers)
|
||||||
|
- [What is Docker](#what-is-docker)
|
||||||
|
- [What is Laravel](#what-is-laravel)
|
||||||
|
- [Why Docker not Vagrant](#why-docker-not-vagrant)
|
||||||
|
- [LaraDock VS Homestead](#laradock-vs-homestead)
|
||||||
|
- [Demo Video](#Demo)
|
||||||
|
- [Requirements](#Requirements)
|
||||||
|
- [Installation](#Installation)
|
||||||
|
- [Usage](#Usage)
|
||||||
|
- [Documentation](#Documentation)
|
||||||
|
- [Docker](#Docker)
|
||||||
|
- [List current running Containers](#List-current-running-Containers)
|
||||||
|
- [Close all running Containers](#Close-all-running-Containers)
|
||||||
|
- [Delete all existing Containers](#Delete-all-existing-Containers)
|
||||||
|
- [Enter a Container (SSH into a running Container)](#Enter-Container)
|
||||||
|
- [Edit default container configuration](#Edit-Container)
|
||||||
|
- [Edit a Docker Image](#Edit-a-Docker-Image)
|
||||||
|
- [Build/Re-build Containers](#Build-Re-build-Containers)
|
||||||
|
- [Add more Software's (Docker Images)](#Add-Docker-Images)
|
||||||
|
- [View the Log files](#View-the-Log-files)
|
||||||
|
- [Laravel](#Laravel):
|
||||||
|
- [Install Laravel from a Docker Container](#Install-Laravel)
|
||||||
|
- [Run Artisan Commands](#Run-Artisan-Commands)
|
||||||
|
- [Use Redis](#Use-Redis)
|
||||||
|
- [Use Mongo](#Use-Mongo)
|
||||||
|
- [PHP](#PHP)
|
||||||
|
- [Install PHP Extensions](#Install-PHP-Extensions)
|
||||||
|
- [Change the PHP-FPM Version](#Change-the-PHP-FPM-Version)
|
||||||
|
- [Change the PHP-CLI Version](#Change-the-PHP-CLI-Version)
|
||||||
|
- [Install xDebug](#Install-xDebug)
|
||||||
|
- [Misc](#Misc)
|
||||||
|
- [Use custom Domain](#Use-custom-Domain)
|
||||||
|
- [Enable Global Composer Build Install](#Enable-Global-Composer-Build-Install)
|
||||||
|
- [Install Prestissimo](#Install-Prestissimo)
|
||||||
|
- [Install Node + NVM](#Install-Node)
|
||||||
|
- [Debugging](#debugging)
|
||||||
|
- [Upgrading LaraDock](#upgrading-laradock)
|
||||||
|
- [Help & Questions](#Help)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Intro"></a>
|
||||||
|
## 介绍
|
||||||
|
LaraDock努力简化创建开发环境过程。
|
||||||
|
它包含预包装Docker镜像,提供你一个美妙的开发环境而不需要安装PHP,NGINX,MySQL和其他任何软件在你本地机器上。
|
||||||
|
|
||||||
|
**使用概览:**
|
||||||
|
|
||||||
|
|
||||||
|
让我们了解使用它安装`NGINX`, `PHP`, `Composer`, `MySQL` 和 `Redis`,然后运行`Laravel`
|
||||||
|
|
||||||
|
1. 将LaraDock放到你的Laravel项目中:
|
||||||
|
<br>
|
||||||
|
`git clone https://github.com/LaraDock/laradock.git`.
|
||||||
|
2. 进入LaraDock目录,然后运行这些容器。
|
||||||
|
<br>
|
||||||
|
`docker-compose up -d nginx mysql redis`
|
||||||
|
3. 打开你的`.env`文件,然后设置`mysql`的`DB_HOST` 和 `redis`的`REDIS_HOST`。
|
||||||
|
4. 打开浏览器,访问localhost:
|
||||||
|
|
||||||
|
|
||||||
|
<a name="features"></a>
|
||||||
|
### 特点
|
||||||
|
|
||||||
|
- 在PHP版本:7.0,5.6.5.5...之中可以简单切换。
|
||||||
|
- 可选择你最喜欢的数据库引擎,比如:MySQL, Postgres, MariaDB...
|
||||||
|
- 可运行自己的软件组合,比如:Memcached, HHVM, Beanstalkd...
|
||||||
|
- 所有软件运行在不同的容器之中,比如:PHP-FPM, NGINX, PHP-CLI...
|
||||||
|
- 通过简单的编写`dockerfile`容易定制任何容器。
|
||||||
|
- 所有镜像继承自一个官方基础镜像(Trusted base Images)
|
||||||
|
- 可预配置Laravel的Nginx环境
|
||||||
|
- 容易应用容器中的配置
|
||||||
|
- 干净的结构化的Docker配置文件(`dockerfile`)
|
||||||
|
- 最新的Docker Compose 版本(`docker-compose`)
|
||||||
|
- 所有的都是可视化和可编辑的
|
||||||
|
- 快速的镜像构建
|
||||||
|
- 每周都会有更新...
|
||||||
|
|
||||||
|
<a name="Supported-Containers"></a>
|
||||||
|
### 支持的软件 (容器)
|
||||||
|
|
||||||
|
- **数据库引擎:**
|
||||||
|
- MySQL
|
||||||
|
- PostgreSQL
|
||||||
|
- MariaDB
|
||||||
|
- MongoDB
|
||||||
|
- Neo4j
|
||||||
|
- **缓存引擎:**
|
||||||
|
- Redis
|
||||||
|
- Memcached
|
||||||
|
- **PHP 服务器:**
|
||||||
|
- NGINX
|
||||||
|
- Apache2
|
||||||
|
- Caddy
|
||||||
|
- **PHP 编译工具:**
|
||||||
|
- PHP-FPM
|
||||||
|
- HHVM
|
||||||
|
- **消息队列系统:**
|
||||||
|
- Beanstalkd (+ Beanstalkd Console)
|
||||||
|
- **工具:**
|
||||||
|
- Workspace (PHP7-CLI, Composer, Git, Node, Gulp, SQLite, Vim, Nano, cURL...)
|
||||||
|
>如果你找不到你需要的软件,构建它然后把它添加到这个列表。你的贡献是受欢迎的。
|
||||||
|
|
||||||
|
<a name="what-is-docker"></a>
|
||||||
|
### Docker是什么?
|
||||||
|
|
||||||
|
[Docker](https://www.docker.com) 是一个开源项目,自动化部署应用程序软件的容器,在Linux, Mac OS and Windows提供一个额外的抽象层和自动化的[操作系统级的虚拟化](https://en.wikipedia.org/wiki/Operating-system-level_virtualization)
|
||||||
|
|
||||||
|
<a name="what-is-laravel"></a>
|
||||||
|
### Laravel是什么?
|
||||||
|
|
||||||
|
额,这很认真的!!!
|
||||||
|
|
||||||
|
|
||||||
|
<a name="why-docker-not-vagrant"></a>
|
||||||
|
### 为什么使用Docker而不是Vagrant!?
|
||||||
|
|
||||||
|
[Vagrant](https://www.vagrantup.com)构建虚拟机需要几分钟然而Docker构建虚拟容器只需要几秒钟。
|
||||||
|
而不是提供一个完整的虚拟机,就像你用Vagrant,Docker为您提供**轻量级**虚拟容器,共享相同的内核和允许安全执行独立的进程。
|
||||||
|
|
||||||
|
除了速度,Docker提供大量的Vagrant无法实现的功能。
|
||||||
|
|
||||||
|
最重要的是Docker可以运行在开发和生产(相同环境无处不在)。Vagrant是专为开发,(所以在生产环境你必须每一次重建您的服务器)。
|
||||||
|
|
||||||
|
<a name="laradock-vs-homestead"></a>
|
||||||
|
### LaraDock Homestead 对比
|
||||||
|
|
||||||
|
LaraDock and [Homestead](https://laravel.com/docs/master/homestead) 给你一个完整的虚拟开发环境。(不需要安装和配置软件在你自己的每一个操作系统)。
|
||||||
|
|
||||||
|
Homestead 是一个工具,为你控制虚拟机(使用Homestead特殊命令)。Vagrant可以管理你的管理虚容器。
|
||||||
|
|
||||||
|
运行一个虚拟容器比运行一整个虚拟机快多了**LaraDock 比 Homestead快多了**
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Demo"></a>
|
||||||
|
## 演示视频
|
||||||
|
还有什么比**演示视频**好:
|
||||||
|
|
||||||
|
- LaraDock v4.0 (即将到来的...)
|
||||||
|
- LaraDock [v2.2](https://www.youtube.com/watch?v=-DamFMczwDA)
|
||||||
|
- LaraDock [v0.3](https://www.youtube.com/watch?v=jGkyO6Is_aI)
|
||||||
|
- LaraDock [v0.1](https://www.youtube.com/watch?v=3YQsHe6oF80)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Requirements"></a>
|
||||||
|
## 依赖
|
||||||
|
|
||||||
|
- [Git](https://git-scm.com/downloads)
|
||||||
|
- [Docker](https://www.docker.com/products/docker/)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Installation"></a>
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
|
||||||
|
1 - 克隆 `LaraDock` 仓库:
|
||||||
|
|
||||||
|
**A)** 如果你已经有一个Laravel项目,克隆这个仓库在到`Laravel`根目录
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git submodule add https://github.com/LaraDock/laradock.git
|
||||||
|
```
|
||||||
|
>如果你不是使用Git管理Laravel项目,您可以使用 `git clone` 而不是`git submodule`。
|
||||||
|
|
||||||
|
|
||||||
|
**B)** 如果你没有一个Laravel项目,你想Docker安装Laravel,克隆这个源在您的机器任何地方上:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/LaraDock/laradock.git
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Usage"></a>
|
||||||
|
## 使用
|
||||||
|
|
||||||
|
|
||||||
|
**请在开始之前阅读:**
|
||||||
|
如果你正在使用**Docker Toolbox** (VM),选择以下任何一个方法:
|
||||||
|
- 更新到Docker [Native](https://www.docker.com/products/docker) Mac/Windows版本 (建议). 查看 [Upgrading Laradock](#upgrading-laradock)
|
||||||
|
- 使用 LaraDock v3.* (访问 `LaraDock-ToolBox` [分支](https://github.com/LaraDock/laradock/tree/LaraDock-ToolBox)).
|
||||||
|
如果您使用的是**Docker Native**(Mac / Windows版本)甚至是Linux版本,通常可以继续阅读这个文档,LaraDock v4以上版本将仅支持**Docker Native**。
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
1 - 运行容器: *(在运行`docker-compose`命令之前,确认你在 `laradock` 目录中*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**例子:** 运行 NGINX 和 MySQL:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d nginx mysql
|
||||||
|
```
|
||||||
|
你可以从以下列表选择你自己的容器组合:
|
||||||
|
|
||||||
|
|
||||||
|
`nginx`, `hhvm`, `php-fpm`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `apache2`, `caddy`, `memcached`, `beanstalkd`, `beanstalkd-console`, `workspace`.
|
||||||
|
|
||||||
|
|
||||||
|
**说明**: `workspace` 和 `php-fpm` 将运行在大部分实例中, 所有不用在命令中 `up`加上它们.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
2 - 进入 Workspace 容器, 执行像 (Artisan, Composer, PHPUnit, Gulp, ...)等命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose exec workspace bash
|
||||||
|
```
|
||||||
|
<br />
|
||||||
|
增加 `--user=laradock` (例如 `docker-compose exec --user=laradock workspace bash`) 作为您的主机的用户创建的文件. (你可以从 `docker-compose.yml`修改 PUID (User id) 和 PGID (group id) 值 ).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
3 - 编辑 Laravel 的配置.
|
||||||
|
|
||||||
|
如果你还没有安装Laravel项目,请查看 [How to Install Laravel in a Docker Container](#Install-Laravel).
|
||||||
|
|
||||||
|
打开 Laravel的 `.env` 文件 然后 配置 你的`mysql`的`DB_HOST`:
|
||||||
|
|
||||||
|
```env
|
||||||
|
DB_HOST=mysql
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
4 - 打开浏览器访问localhost (`http://localhost/`).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
**调试**: 如果你碰到任何问题,请查看 [调试](#debugging) 章节
|
||||||
|
如果你需要特别支持,请联系我,更多细节在[帮助 & 问题](#Help)章节
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Documentation"></a>
|
||||||
|
## 文档
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Docker"></a>
|
||||||
|
### [Docker]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="List-current-running-Containers"></a>
|
||||||
|
### 列出正在运行的容器
|
||||||
|
```bash
|
||||||
|
docker ps
|
||||||
|
```
|
||||||
|
你也可以使用以下命令查看某项目的容器
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose ps
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Close-all-running-Containers"></a>
|
||||||
|
### 关闭所有容器
|
||||||
|
```bash
|
||||||
|
docker-compose stop
|
||||||
|
```
|
||||||
|
|
||||||
|
停止某个容器:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose stop {容器名称}
|
||||||
|
```
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Delete-all-existing-Containers"></a>
|
||||||
|
### 删除所有容器
|
||||||
|
```bash
|
||||||
|
docker-compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
小心这个命令,因为它也会删除你的数据容器。(如果你想保留你的数据你应该在上述命令后列出容器名称删除每个容器本身):*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Enter-Container"></a>
|
||||||
|
### 进入容器 (通过SSH 进入一个运行中的容器)
|
||||||
|
|
||||||
|
1 - 首先使用 `docker ps`命令查看正在运行的容器
|
||||||
|
|
||||||
|
2 - 进入某个容器使用:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose exec {container-name} bash
|
||||||
|
```
|
||||||
|
|
||||||
|
*例如: 进入 MySQL 容器*
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose exec mysql bash
|
||||||
|
```
|
||||||
|
|
||||||
|
3 - 退出容器, 键入 `exit`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Edit-Container"></a>
|
||||||
|
### 编辑默认容器配置
|
||||||
|
打开 `docker-compose.yml` 然后 按照你想的修改.
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
修改 MySQL 数据库名称:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: laradock
|
||||||
|
```
|
||||||
|
|
||||||
|
修改 Redis 默认端口为 1111:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
ports:
|
||||||
|
- "1111:6379"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Edit-a-Docker-Image"></a>
|
||||||
|
### 编辑Docker镜像
|
||||||
|
|
||||||
|
1 - 找到你想修改的镜像的 `dockerfile` ,
|
||||||
|
<br>
|
||||||
|
例如: `mysql` 在 `mysql/Dockerfile`.
|
||||||
|
|
||||||
|
2 - 按你所要的编辑文件.
|
||||||
|
|
||||||
|
3 - 重新构建容器:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose build mysql
|
||||||
|
```
|
||||||
|
更多信息在容器重建中 [点击这里](#Build-Re-build-Containers).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Build-Re-build-Containers"></a>
|
||||||
|
### 建立/重建容器
|
||||||
|
|
||||||
|
|
||||||
|
如果你做任何改变`dockerfile`确保你运行这个命令,可以让所有修改更改生效:
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose build
|
||||||
|
```
|
||||||
|
选择你可以指定哪个容器重建(而不是重建所有的容器):
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose build {container-name}
|
||||||
|
```
|
||||||
|
|
||||||
|
如果你想重建整个容器,你可能需要使用 `--no-cache` 选项 (`docker-compose build --no-cache {container-name}`).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Add-Docker-Images"></a>
|
||||||
|
### 增加更多软件 (Docker 镜像)
|
||||||
|
|
||||||
|
为了增加镜像(软件), 编辑 `docker-compose.yml` 添加容器细节, 你需要熟悉 [docker compose 文件语法](https://docs.docker.com/compose/compose-file/).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="View-the-Log-files"></a>
|
||||||
|
### 查看日志文件
|
||||||
|
Nginx的日志在 `logs/nginx` 目录
|
||||||
|
|
||||||
|
然后查看其它容器日志(MySQL, PHP-FPM,...) 你可以运行:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker logs {container-name}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Laravel"></a>
|
||||||
|
### [Laravel]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Install-Laravel"></a>
|
||||||
|
### 从Docker镜像安装Laravel
|
||||||
|
1 - 首先你需要进入 Workspace 容器.
|
||||||
|
|
||||||
|
2 - 安装 Laravel.
|
||||||
|
|
||||||
|
例如 使用 Composer
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer create-project laravel/laravel my-cool-app "5.2.*"
|
||||||
|
```
|
||||||
|
|
||||||
|
> 我们建议使用 `composer create-project` 替换Laravel 安装器去安装Laravel.
|
||||||
|
|
||||||
|
关于更多Laravel安装内容请 [点击这儿](https://laravel.com/docs/master#installing-laravel).
|
||||||
|
|
||||||
|
|
||||||
|
3 - 编辑 `docker-compose.yml` 映射新的应用目录:
|
||||||
|
系统默认LaraDock假定Laravel应用在LaraDock的父级目录中
|
||||||
|
By default LaraDock assumes the Laravel application is living in the parent directory of the laradock folder.
|
||||||
|
|
||||||
|
自新Laravel应用在 `my-cool-app` 目录中, 我们需要用 `../my-cool-app/:/var/www/laravel`替换 `../:/var/www/laravel` , 如下:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
application:
|
||||||
|
build: ./application
|
||||||
|
volumes:
|
||||||
|
- ../my-cool-app/:/var/www/laravel
|
||||||
|
```
|
||||||
|
4 - 进入目录下继续工作..
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd my-cool-app
|
||||||
|
```
|
||||||
|
|
||||||
|
5 - 回到LaraDock安装步骤,看看如何编辑`env`的文件。
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Run-Artisan-Commands"></a>
|
||||||
|
### 运行 Artisan 命令
|
||||||
|
你可以从Workspace容器运行artisan命令和其他终端命令
|
||||||
|
|
||||||
|
1 - 确认Workspace容器已经运行.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d workspace // ..and all your other containers
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - 找到Workspace容器名称:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose ps
|
||||||
|
```
|
||||||
|
|
||||||
|
3 - 进入Workspace容器:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose exec workspace bash
|
||||||
|
```
|
||||||
|
|
||||||
|
增加 `--user=laradock` (例如 `docker-compose exec --user=laradock workspace bash`) 作为您的主机的用户创建的文件.
|
||||||
|
|
||||||
|
|
||||||
|
4 - 运行任何你想的 :)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php artisan
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
Composer update
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
phpunit
|
||||||
|
```
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-Redis"></a>
|
||||||
|
### 使用 Redis
|
||||||
|
1 - 首先务必用 `docker-compose up` 命令运行 (`redis`)容器.
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d redis
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - 打开你的Laravel的 `.env` 文件 然后 配置`redis`的`REDIS_HOST`
|
||||||
|
|
||||||
|
```env
|
||||||
|
REDIS_HOST=redis
|
||||||
|
```
|
||||||
|
如果在你的`.env` 文件没有找到`REDIS_HOST`变量。打开数据库配置文件`config/database.php`然后用`redis`替换默认IP`127.0.0.1`,例如:
|
||||||
|
|
||||||
|
|
||||||
|
```php
|
||||||
|
'redis' => [
|
||||||
|
'cluster' => false,
|
||||||
|
'default' => [
|
||||||
|
'host' => 'redis',
|
||||||
|
'port' => 6379,
|
||||||
|
'database' => 0,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
```
|
||||||
|
|
||||||
|
3 - 启用Redis缓存或者开启Session管理也在`.env`文件中用`redis`替换默认`file`设置`CACHE_DRIVER` 和 `SESSION_DRIVER`
|
||||||
|
|
||||||
|
```env
|
||||||
|
CACHE_DRIVER=redis
|
||||||
|
SESSION_DRIVER=redis
|
||||||
|
```
|
||||||
|
|
||||||
|
4 - 最好务必通过Compose安装 `predis/predis` 包 `(~1.0)`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer require predis/predis:^1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
5 - 你可以用以下代码在Laravel中手动测试:
|
||||||
|
|
||||||
|
```php
|
||||||
|
\Cache::store('redis')->put('LaraDock', 'Awesome', 10);
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-Mongo"></a>
|
||||||
|
### 使用 Mongo
|
||||||
|
|
||||||
|
1 - 首先在Workspace和PHP-FPM容器中安装`mongo`:
|
||||||
|
<br>
|
||||||
|
a) 打开 `docker-compose.yml` 文件
|
||||||
|
<br>
|
||||||
|
b) 在Workspace容器中找到`INSTALL_MONGO`选项:
|
||||||
|
|
||||||
|
<br>
|
||||||
|
c) 设置为 `true`
|
||||||
|
<br>
|
||||||
|
d) 在PHP-FPM容器中找到`INSTALL_MONGO` <br>
|
||||||
|
e) 设置为 `true`
|
||||||
|
|
||||||
|
相关配置项如下:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
workspace:
|
||||||
|
build:
|
||||||
|
context: ./workspace
|
||||||
|
args:
|
||||||
|
- INSTALL_MONGO=true
|
||||||
|
...
|
||||||
|
php-fpm:
|
||||||
|
build:
|
||||||
|
context: ./php-fpm
|
||||||
|
args:
|
||||||
|
- INSTALL_MONGO=true
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - 重建`Workspace、PHP-FPM`容器 `docker-compose build workspace php-fpm`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
3 - 使用`docker-compose up` 命令运行MongoDB容器 (`mongo`)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d mongo
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
4 - 在`config/database.php` 文件添加MongoDB的配置项:
|
||||||
|
|
||||||
|
```php
|
||||||
|
'connections' => [
|
||||||
|
|
||||||
|
'mongodb' => [
|
||||||
|
'driver' => 'mongodb',
|
||||||
|
'host' => env('DB_HOST', 'localhost'),
|
||||||
|
'port' => env('DB_PORT', 27017),
|
||||||
|
'database' => env('DB_DATABASE', 'database'),
|
||||||
|
'username' => '',
|
||||||
|
'password' => '',
|
||||||
|
'options' => [
|
||||||
|
'database' => '',
|
||||||
|
]
|
||||||
|
],
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
],
|
||||||
|
```
|
||||||
|
|
||||||
|
5 - 打开Laravel的 `.env` 文件 然后 更新以下字段:
|
||||||
|
|
||||||
|
- 设置 `DB_HOST` 为 `mongo`的主机IP.
|
||||||
|
- 设置 `DB_PORT` 为 `27017`.
|
||||||
|
- 设置 `DB_DATABASE` 为 `database`.
|
||||||
|
|
||||||
|
|
||||||
|
6 - 最后务必通过Composer安装`jenssegers/mongodb`包,添加服务提供者(Laravel Service Provider)
|
||||||
|
|
||||||
|
|
||||||
|
```bash
|
||||||
|
composer require jenssegers/mongodb
|
||||||
|
```
|
||||||
|
更多细节内容 [点击这儿](https://github.com/jenssegers/laravel-mongodb#installation).
|
||||||
|
|
||||||
|
7 - 测试:
|
||||||
|
|
||||||
|
- 首先让你的模型继承Mongo的Eloquent Model. 查看 [文档](https://github.com/jenssegers/laravel-mongodb#eloquent).
|
||||||
|
- 进入Workspace容器.
|
||||||
|
- 迁移数据库 `php artisan migrate`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="PHP"></a>
|
||||||
|
### [PHP]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Install-PHP-Extensions"></a>
|
||||||
|
### 安装PHP拓展
|
||||||
|
安装PHP扩展之前,你必须决定你是否需要`FPM`或`CLI`,因为他们安装在不同的容器上,如果你需要两者,则必须编辑两个容器。
|
||||||
|
|
||||||
|
PHP-FPM拓展务必安装在 `php-fpm/Dockerfile-XX`. *(用你PHP版本号替换 XX)*.
|
||||||
|
<br>
|
||||||
|
PHP-CLI拓展应该安装到`workspace/Dockerfile`.
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Change-the-PHP-FPM-Version"></a>
|
||||||
|
### 修改PHP-FPM版本
|
||||||
|
默认运行**PHP-FPM 7.0**版本.
|
||||||
|
|
||||||
|
>PHP-FPM负责服务你的应用代码,如果你是计划运行您的应用程序在不同PHP-FPM版本上,则不需要更改PHP-CLI版本。
|
||||||
|
|
||||||
|
|
||||||
|
#### A) 切换版本 PHP `7.0` 到 PHP `5.6`
|
||||||
|
|
||||||
|
1 - 打开 `docker-compose.yml`。
|
||||||
|
|
||||||
|
2 - 在PHP容器的 `Dockerfile-70`文件。
|
||||||
|
|
||||||
|
3 - 修改版本号, 用`Dockerfile-56`替换 `Dockerfile-70` , 例如:
|
||||||
|
|
||||||
|
```txt
|
||||||
|
php-fpm:
|
||||||
|
build:
|
||||||
|
context: ./php-fpm
|
||||||
|
dockerfile: Dockerfile-70
|
||||||
|
```
|
||||||
|
|
||||||
|
4 - 最后重建PHP容器
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose build php
|
||||||
|
```
|
||||||
|
|
||||||
|
> 更多关于PHP基础镜像, 请访问 [PHP Docker官方镜像](https://hub.docker.com/_/php/).
|
||||||
|
|
||||||
|
|
||||||
|
#### B) 切换版本 PHP `7.0` 或 `5.6` 到 PHP `5.5`
|
||||||
|
我们已不在本地支持PHP5.5,但是你按照以下步骤获取:
|
||||||
|
|
||||||
|
1 - 克隆 `https://github.com/LaraDock/php-fpm`.
|
||||||
|
|
||||||
|
3 - 重命名 `Dockerfile-56` 为 `Dockerfile-55`.
|
||||||
|
|
||||||
|
3 - 编辑文件 `FROM php:5.6-fpm` 为 `FROM php:5.5-fpm`.
|
||||||
|
|
||||||
|
4 - 从 `Dockerfile-55`构建镜像.
|
||||||
|
|
||||||
|
5 - 打开 `docker-compose.yml` 文件.
|
||||||
|
|
||||||
|
6 - 将 `php-fpm` 指向你的 `Dockerfile-55` 文件.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Change-the-PHP-CLI-Version"></a>
|
||||||
|
### 修改 PHP-CLI 版本
|
||||||
|
默认运行**PHP-CLI 7.0**版本
|
||||||
|
|
||||||
|
>说明: PHP-CLI只用于执行Artisan和Composer命令,不服务于你的应用代码,这是PHP-FPM的工作,所以编辑PHP-CLI的版本不是很重要。
|
||||||
|
PHP-CLI安装在Workspace容器,改变PHP-CLI版本你需要编辑`workspace/Dockerfile`.
|
||||||
|
现在你必须手动修改PHP-FPM的`Dockerfile`或者创建一个新的。 (可以考虑贡献功能).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Install-xDebug"></a>
|
||||||
|
### 安装 xDebug
|
||||||
|
|
||||||
|
1 - 首先在Workspace和PHP-FPM容器安装 `xDebug`:
|
||||||
|
<br>
|
||||||
|
a) 打开 `docker-compose.yml` 文件
|
||||||
|
<br>
|
||||||
|
b) 在Workspace容器中找到 `INSTALL_XDEBUG` 选项
|
||||||
|
<br>
|
||||||
|
c) 改为 `true`
|
||||||
|
<br>
|
||||||
|
d) 在PHP-FPM容器中找到 `INSTALL_XDEBUG ` 选项<br>
|
||||||
|
e) 改为 `true`
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
workspace:
|
||||||
|
build:
|
||||||
|
context: ./workspace
|
||||||
|
args:
|
||||||
|
- INSTALL_XDEBUG=true
|
||||||
|
...
|
||||||
|
php-fpm:
|
||||||
|
build:
|
||||||
|
context: ./php-fpm
|
||||||
|
args:
|
||||||
|
- INSTALL_XDEBUG=true
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - 重建容器 `docker-compose build workspace php-fpm`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Misc"></a>
|
||||||
|
### [Misc]
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-custom-Domain"></a>
|
||||||
|
### 使用自定义域名 (替换Docker的IP)
|
||||||
|
|
||||||
|
假定你的自定义域名是 `laravel.dev`
|
||||||
|
|
||||||
|
1 - 打开 `/etc/hosts` 文件 添加以下内容,映射你的localhost 地址 `127.0.0.1` 为 `laravel.dev` 域名
|
||||||
|
```bash
|
||||||
|
127.0.0.1 laravel.dev
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - 打开你的浏览器访问 `{http://laravel.dev}`
|
||||||
|
|
||||||
|
你可以在nginx配置文件自定义服务器名称,如下:
|
||||||
|
|
||||||
|
|
||||||
|
```conf
|
||||||
|
server_name laravel.dev;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Enable-Global-Composer-Build-Install"></a>
|
||||||
|
### 安装全局Composer命令
|
||||||
|
|
||||||
|
为启用全局Composer Install在容器构建中允许你安装composer的依赖,然后构建完成后就是可用的。
|
||||||
|
|
||||||
|
1 - 打开 `docker-compose.yml` 文件
|
||||||
|
|
||||||
|
2 - 在Workspace容器找到 `COMPOSER_GLOBAL_INSTALL` 选项并设置为 `true`
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
workspace:
|
||||||
|
build:
|
||||||
|
context: ./workspace
|
||||||
|
args:
|
||||||
|
- COMPOSER_GLOBAL_INSTALL=true
|
||||||
|
...
|
||||||
|
```
|
||||||
|
3 - 现在特价你的依赖关系到 `workspace/composer.json`
|
||||||
|
|
||||||
|
4 - 重建Workspace容器 `docker-compose build workspace`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Install-Prestissimo"></a>
|
||||||
|
### 安装 Prestissimo
|
||||||
|
|
||||||
|
[Prestissimo](https://github.com/hirak/prestissimo) 是一个平行安装功能的composer插件。
|
||||||
|
1 - 在安装期间,使全局Composer Install 正在运行:
|
||||||
|
|
||||||
|
点击这个 [启用全局Composer构建安装](#Enable-Global-Composer-Build-Install) 然后继续步骤1、2.
|
||||||
|
|
||||||
|
2 - 添加 prestissimo 依赖到 Composer:
|
||||||
|
|
||||||
|
a - 现在打开 `workspace/composer.json` 文件
|
||||||
|
|
||||||
|
b - 添加 `"hirak/prestissimo": "^0.3"` 依赖
|
||||||
|
|
||||||
|
c - 重建Workspace容器 `docker-compose build workspace`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Install-Node"></a>
|
||||||
|
### 安装 Node + NVM
|
||||||
|
|
||||||
|
在Workspace 容器安装 NVM 和 NodeJS
|
||||||
|
1 - 打开 `docker-compose.yml` 文件
|
||||||
|
|
||||||
|
2 - 在Workspace容器找到 `INSTALL_NODE` 选项设为 `true`
|
||||||
|
|
||||||
|
例如:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
workspace:
|
||||||
|
build:
|
||||||
|
context: ./workspace
|
||||||
|
args:
|
||||||
|
- INSTALL_NODE=true
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
3 - 重建容器 `docker-compose build workspace`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="debugging"></a>
|
||||||
|
### Debugging
|
||||||
|
|
||||||
|
*这里是你可能面临的常见问题列表,以及可能的解决方案.*
|
||||||
|
|
||||||
|
#### 看到空白页而不是Laravel的欢迎页面!
|
||||||
|
|
||||||
|
在Laravel根目录,运行下列命令:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo chmod -R 777 storage bootstrap/cache
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 看到 "Welcome to nginx" 而不是 Laravel 应用!
|
||||||
|
|
||||||
|
在浏览器使用 `http://127.0.0.1` 替换 `http://localhost`.
|
||||||
|
|
||||||
|
#### 看到包含 `address already in use` 的错误
|
||||||
|
|
||||||
|
确保你想运行的服务端口(80, 3306, etc.)不是已经被其他程序使用,例如`apache`/`httpd`服务或其他安装的开发工具
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="upgrading-laradock"></a>
|
||||||
|
### LaraDock 升级
|
||||||
|
|
||||||
|
|
||||||
|
从Docker Toolbox (VirtualBox)移动到Docker Native (for Mac/Windows),需要从 LaraDock v3.* 升级到 v4.*:
|
||||||
|
|
||||||
|
1. 停止Docker虚拟机 `docker-machine stop {default}`
|
||||||
|
2. 安装 Docker [Mac](https://docs.docker.com/docker-for-mac/) 或 [Windows](https://docs.docker.com/docker-for-windows/).
|
||||||
|
3. 升级 LaraDock 到 `v4.*.*` (`git pull origin master`)
|
||||||
|
4. 像之前一样使用LaraDock: `docker-compose up -d nginx mysql`.
|
||||||
|
|
||||||
|
**说明:** 如果你面临任何上面的问题的最后一步:重建你所有的容器
|
||||||
|
`docker-compose build --no-cache`
|
||||||
|
"警告:容器数据可能会丢失!"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
## 贡献
|
||||||
|
这个小项目是由一个有一个全职工作和很多的职责的人建立的,所以如果你喜欢这个项目,并且发现它需要一个bug修复或支持或新软件或升级任何容器,或其他任何. . 你是非常欢迎,欢迎毫不不犹豫地贡献吧:)
|
||||||
|
|
||||||
|
#### 阅读我们的 [贡献说明](https://github.com/LaraDock/laradock/blob/master/CONTRIBUTING.md)
|
||||||
|
|
||||||
|
<a name="Help"></a>
|
||||||
|
## 帮助 & 问题
|
||||||
|
|
||||||
|
从聊天室 [Gitter](https://gitter.im/LaraDock/laradock) 社区获取帮助和支持.
|
||||||
|
|
||||||
|
你也可以打开Github上的 [issue](https://github.com/laradock/laradock/issues) (将被贴上问题和答案) 或与大家讨论 [Gitter](https://gitter.im/LaraDock/laradock).
|
||||||
|
|
||||||
|
Docker或Laravel的特别帮助,你可以在[Codementor.io](https://www.codementor.io/mahmoudz)上直接和项目创始人在线沟通
|
||||||
|
|
||||||
|
## 关于作者
|
||||||
|
|
||||||
|
**创始人:**
|
||||||
|
|
||||||
|
- [Mahmoud Zalt](https://github.com/Mahmoudz) (Twitter [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt))
|
||||||
|
|
||||||
|
**主要 贡献者:**
|
||||||
|
|
||||||
|
- [Zhqagp](https://github.com/zhqagp)
|
||||||
|
- [Suteepat (tianissimo)](https://github.com/tianissimo)
|
||||||
|
- [David (davidavz)](https://github.com/davidavz)
|
||||||
|
- [Lialosiu](https://github.com/lialosiu)
|
||||||
|
- [Eric Pfeiffer (computerfr33k)](https://github.com/computerfr33k)
|
||||||
|
- [Orette](https://github.com/orette)
|
||||||
|
- [Jack Fletcher (Kauhat)](https://github.com/Kauhat)
|
||||||
|
- [Bo-Yi Wu (appleboy)](https://github.com/appleboy)
|
||||||
|
- [Amin Mkh (AminMkh)](https://github.com/AminMkh)
|
||||||
|
- [Matthew Tonkin Dunn (mattythebatty)](https://github.com/mattythebatty)
|
||||||
|
- [Zhivitsa Kirill (zhikiri)](https://github.com/zhikiri)
|
||||||
|
- [Benmag](https://github.com/benmag)
|
||||||
|
|
||||||
|
**优秀的人:**
|
||||||
|
|
||||||
|
- [Contributors](https://github.com/LaraDock/laradock/graphs/contributors)
|
||||||
|
- [Supporters](https://github.com/LaraDock/laradock/issues?utf8=%E2%9C%93&q=)
|
||||||
|
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE) (MIT)
|
138
README.md
138
README.md
@ -13,10 +13,14 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
## Contents
|
## Contents
|
||||||
|
|
||||||
|
- [Readme Languages](#)
|
||||||
|
- [English (Default)](#)
|
||||||
|
- [Chinese](https://github.com/LaraDock/laradock/blob/master/README-zh.md)
|
||||||
- [Intro](#Intro)
|
- [Intro](#Intro)
|
||||||
- [Features](#features)
|
- [Features](#features)
|
||||||
- [Supported Software's](#Supported-Containers)
|
- [Supported Software's](#Supported-Containers)
|
||||||
@ -44,11 +48,15 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
|||||||
- [Run Artisan Commands](#Run-Artisan-Commands)
|
- [Run Artisan Commands](#Run-Artisan-Commands)
|
||||||
- [Use Redis](#Use-Redis)
|
- [Use Redis](#Use-Redis)
|
||||||
- [Use Mongo](#Use-Mongo)
|
- [Use Mongo](#Use-Mongo)
|
||||||
|
- [Use phpMyAdmin](#Use-phpMyAdmin)
|
||||||
- [PHP](#PHP)
|
- [PHP](#PHP)
|
||||||
- [Install PHP Extensions](#Install-PHP-Extensions)
|
- [Install PHP Extensions](#Install-PHP-Extensions)
|
||||||
- [Change the PHP-FPM Version](#Change-the-PHP-FPM-Version)
|
- [Change the PHP-FPM Version](#Change-the-PHP-FPM-Version)
|
||||||
- [Change the PHP-CLI Version](#Change-the-PHP-CLI-Version)
|
- [Change the PHP-CLI Version](#Change-the-PHP-CLI-Version)
|
||||||
- [Install xDebug](#Install-xDebug)
|
- [Install xDebug](#Install-xDebug)
|
||||||
|
- [Start/Stop xDebug](#Controll-xDebug)
|
||||||
|
- [Production](#Production)
|
||||||
|
- [Setup Laravel and Docker on Digital Ocean](#Digital-Ocean)
|
||||||
- [Misc](#Misc)
|
- [Misc](#Misc)
|
||||||
- [Use custom Domain](#Use-custom-Domain)
|
- [Use custom Domain](#Use-custom-Domain)
|
||||||
- [Enable Global Composer Build Install](#Enable-Global-Composer-Build-Install)
|
- [Enable Global Composer Build Install](#Enable-Global-Composer-Build-Install)
|
||||||
@ -112,6 +120,7 @@ Let's see how easy it is to install `NGINX`, `PHP`, `Composer`, `MySQL` and `Red
|
|||||||
- **Cache Engines:**
|
- **Cache Engines:**
|
||||||
- Redis
|
- Redis
|
||||||
- Memcached
|
- Memcached
|
||||||
|
- Aerospike
|
||||||
- **PHP Servers:**
|
- **PHP Servers:**
|
||||||
- NGINX
|
- NGINX
|
||||||
- Apache2
|
- Apache2
|
||||||
@ -121,8 +130,10 @@ Let's see how easy it is to install `NGINX`, `PHP`, `Composer`, `MySQL` and `Red
|
|||||||
- HHVM
|
- HHVM
|
||||||
- **Message Queueing Systems:**
|
- **Message Queueing Systems:**
|
||||||
- Beanstalkd (+ Beanstalkd Console)
|
- Beanstalkd (+ Beanstalkd Console)
|
||||||
|
- RabbitMQ (+ RabbitMQ Console)
|
||||||
- **Tools:**
|
- **Tools:**
|
||||||
- Workspace (PHP7-CLI, Composer, Git, Node, Gulp, SQLite, Vim, Nano, cURL...)
|
- Workspace (PHP7-CLI, Composer, Git, Node, Gulp, SQLite, Vim, Nano, cURL...)
|
||||||
|
- phpMyAdmin
|
||||||
|
|
||||||
|
|
||||||
>If you can't find your Software, build it yourself and add it to this list. Contributions are welcomed :)
|
>If you can't find your Software, build it yourself and add it to this list. Contributions are welcomed :)
|
||||||
@ -184,8 +195,8 @@ What's better than a **Demo Video**:
|
|||||||
<a name="Requirements"></a>
|
<a name="Requirements"></a>
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- [Git](https://git-scm.com/downloads)
|
- [Git](https://git-scm.com/downloads)
|
||||||
- [Docker](https://www.docker.com/products/docker/)
|
- [Docker](https://www.docker.com/products/docker/) `>= 1.12`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -240,7 +251,7 @@ docker-compose up -d nginx mysql
|
|||||||
|
|
||||||
You can select your own combination of Containers form the list below:
|
You can select your own combination of Containers form the list below:
|
||||||
|
|
||||||
`nginx`, `hhvm`, `php-fpm`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `apache2`, `caddy`, `memcached`, `beanstalkd`, `beanstalkd-console`, `workspace`.
|
`nginx`, `hhvm`, `php-fpm`, `mysql`, `redis`, `postgres`, `mariadb`, `neo4j`, `mongo`, `apache2`, `caddy`, `memcached`, `beanstalkd`, `beanstalkd-console`, `rabbitmq`, `workspace`, `phpmyadmin`, `aerospike`.
|
||||||
|
|
||||||
|
|
||||||
**Note**: `workspace` and `php-fpm` will run automatically in most of the cases, so no need to specify them in the `up` command.
|
**Note**: `workspace` and `php-fpm` will run automatically in most of the cases, so no need to specify them in the `up` command.
|
||||||
@ -290,7 +301,7 @@ If you need a special support. Contact me, more details in the [Help & Questions
|
|||||||
|
|
||||||
|
|
||||||
<a name="Docker"></a>
|
<a name="Docker"></a>
|
||||||
### [Docker]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -472,7 +483,6 @@ docker logs {container-name}
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Laravel"></a>
|
<a name="Laravel"></a>
|
||||||
### [Laravel]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -490,7 +500,7 @@ Example using Composer
|
|||||||
composer create-project laravel/laravel my-cool-app "5.2.*"
|
composer create-project laravel/laravel my-cool-app "5.2.*"
|
||||||
```
|
```
|
||||||
|
|
||||||
> We recommand using `composer create-project` instead of the Laravel installer, to install Laravel.
|
> We recommend using `composer create-project` instead of the Laravel installer, to install Laravel.
|
||||||
|
|
||||||
For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel).
|
For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel).
|
||||||
|
|
||||||
@ -699,9 +709,28 @@ More details about this [here](https://github.com/jenssegers/laravel-mongodb#ins
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-phpMyAdmin"></a>
|
||||||
|
### Use phpMyAdmin
|
||||||
|
|
||||||
|
1 - Run the phpMyAdmin Container (`phpmyadmin`) with the `docker-compose up` command. Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# use with mysql
|
||||||
|
docker-compose up -d mysql phpmyadmin
|
||||||
|
|
||||||
|
# use with mariadb
|
||||||
|
docker-compose up -d mariadb phpmyadmin
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - Open your browser and visit the localhost on port **8080**: `http://localhost:8080`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="PHP"></a>
|
<a name="PHP"></a>
|
||||||
### [PHP]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -833,10 +862,44 @@ It should be like this:
|
|||||||
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||||
|
|
||||||
|
|
||||||
|
For information on how to configure xDebug with your IDE and work it out, check this [Repository](https://github.com/LarryEitel/laravel-laradock-phpstorm).
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Controll-xDebug"></a>
|
||||||
|
### Start/Stop xDebug:
|
||||||
|
|
||||||
|
By installing xDebug, you are enabling it to run on startup by default.
|
||||||
|
|
||||||
|
To controll the behavior of xDebug (in the `php-fpm` Container), you can run the following commands from the LaraDock root folder:
|
||||||
|
|
||||||
|
- Stop xDebug from running by default: `./xdebugPhpFpm stop`.
|
||||||
|
- Start xDebug by default: `./xdebugPhpFpm start`.
|
||||||
|
- See the status: `./xdebugPhpFpm status`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Production"></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Digital-Ocean"></a>
|
||||||
|
### Setup Laravel and Docker on Digital Ocean
|
||||||
|
|
||||||
|
####[Full Giude Here](https://github.com/LaraDock/laradock/blob/master/_guides/digital_ocean.md)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Misc"></a>
|
<a name="Misc"></a>
|
||||||
### [Misc]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
@ -933,7 +996,40 @@ It should be like this:
|
|||||||
|
|
||||||
3 - Re-build the container `docker-compose build workspace`
|
3 - Re-build the container `docker-compose build workspace`
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Install-Aerospike-Extension"></a>
|
||||||
|
### Install Aerospike extension
|
||||||
|
|
||||||
|
1 - First install `aerospike` in the Workspace and the PHP-FPM Containers:
|
||||||
|
<br>
|
||||||
|
a) open the `docker-compose.yml` file
|
||||||
|
<br>
|
||||||
|
b) search for the `INSTALL_AEROSPIKE_EXTENSION` argument under the Workspace Container
|
||||||
|
<br>
|
||||||
|
c) set it to `true`
|
||||||
|
<br>
|
||||||
|
d) search for the `INSTALL_AEROSPIKE_EXTENSION` argument under the PHP-FPM Container
|
||||||
|
<br>
|
||||||
|
e) set it to `true`
|
||||||
|
|
||||||
|
It should be like this:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
workspace:
|
||||||
|
build:
|
||||||
|
context: ./workspace
|
||||||
|
args:
|
||||||
|
- INSTALL_AEROSPIKE_EXTENSION=true
|
||||||
|
...
|
||||||
|
php-fpm:
|
||||||
|
build:
|
||||||
|
context: ./php-fpm
|
||||||
|
args:
|
||||||
|
- INSTALL_AEROSPIKE_EXTENSION=true
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="debugging"></a>
|
<a name="debugging"></a>
|
||||||
@ -941,6 +1037,8 @@ It should be like this:
|
|||||||
|
|
||||||
*Here's a list of the common problems you might face, and the possible solutions.*
|
*Here's a list of the common problems you might face, and the possible solutions.*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### I see a blank (white) page instead of the Laravel 'Welcome' page!
|
#### I see a blank (white) page instead of the Laravel 'Welcome' page!
|
||||||
|
|
||||||
Run the following command from the Laravel root directory:
|
Run the following command from the Laravel root directory:
|
||||||
@ -949,16 +1047,29 @@ Run the following command from the Laravel root directory:
|
|||||||
sudo chmod -R 777 storage bootstrap/cache
|
sudo chmod -R 777 storage bootstrap/cache
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
#### I see "Welcome to nginx" instead of the Laravel App!
|
#### I see "Welcome to nginx" instead of the Laravel App!
|
||||||
|
|
||||||
Use `http://127.0.0.1` instead of `http://localhost` in your browser.
|
Use `http://127.0.0.1` instead of `http://localhost` in your browser.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### I see an error message containing `address already in use`
|
#### I see an error message containing `address already in use`
|
||||||
|
|
||||||
Make sure the ports for the services that you are trying to run (80, 3306, etc.) are not being used already by other programs, such as a built in `apache`/`httpd` service or other development tools you have installed.
|
Make sure the ports for the services that you are trying to run (80, 3306, etc.) are not being used already by other programs, such as a built in `apache`/`httpd` service or other development tools you have installed.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### I get Nginx error 404 Not Found on Windows.
|
||||||
|
|
||||||
|
1. Go to docker Settings on your Windows machine.
|
||||||
|
2. Click on the `Shared Drives` tab and check the drive that contains your project files.
|
||||||
|
3. Enter your windows username and password.
|
||||||
|
4. Go to the `reset` tab and click restart docker.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="upgrading-laradock"></a>
|
<a name="upgrading-laradock"></a>
|
||||||
@ -987,7 +1098,7 @@ Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requ
|
|||||||
|
|
||||||
This little project was built by one man who has a full time job and many responsibilities, so if you like this project and you find that it needs a bug fix or support for new software or upgrade any container, or anything else.. Do not hesitate to contribute, you are more than welcome :)
|
This little project was built by one man who has a full time job and many responsibilities, so if you like this project and you find that it needs a bug fix or support for new software or upgrade any container, or anything else.. Do not hesitate to contribute, you are more than welcome :)
|
||||||
|
|
||||||
#### Read our [Contribution Guidelines](https://github.com/LaraDock/laradock/blob/master/CONTRIBUTING.md)
|
#### Read the [Contribution Guidelines](https://github.com/LaraDock/laradock/blob/master/CONTRIBUTING.md).
|
||||||
|
|
||||||
<a name="Help"></a>
|
<a name="Help"></a>
|
||||||
## Help & Questions
|
## Help & Questions
|
||||||
@ -1006,6 +1117,13 @@ For special help with Docker and/or Laravel, you can schedule a live call with t
|
|||||||
|
|
||||||
**Main Contributors:**
|
**Main Contributors:**
|
||||||
|
|
||||||
|
- [Zhqagp](https://github.com/zhqagp)
|
||||||
|
- [Tim B (tjb328)](https://github.com/tjb328)
|
||||||
|
- [MidasCodeBreaker](https://github.com/midascodebreaker)
|
||||||
|
- [Larry Eitel (LarryEitel)](https://github.com/LarryEitel)
|
||||||
|
- [Suteepat (tianissimo)](https://github.com/tianissimo)
|
||||||
|
- [David (davidavz)](https://github.com/davidavz)
|
||||||
|
- [Lialosiu](https://github.com/lialosiu)
|
||||||
- [Eric Pfeiffer (computerfr33k)](https://github.com/computerfr33k)
|
- [Eric Pfeiffer (computerfr33k)](https://github.com/computerfr33k)
|
||||||
- [Orette](https://github.com/orette)
|
- [Orette](https://github.com/orette)
|
||||||
- [Jack Fletcher (Kauhat)](https://github.com/Kauhat)
|
- [Jack Fletcher (Kauhat)](https://github.com/Kauhat)
|
||||||
|
213
_guides/digital_ocean.md
Normal file
213
_guides/digital_ocean.md
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
#### Install Docker
|
||||||
|
```
|
||||||
|
Login Digital Ocean
|
||||||
|
Add Droplet
|
||||||
|
1 Click Install docker
|
||||||
|
Choose Droplet
|
||||||
|
reset ROOT password
|
||||||
|
check email
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SSH to your Server
|
||||||
|
|
||||||
|
```
|
||||||
|
ssh root@ipaddress
|
||||||
|
```
|
||||||
|
you will be prompt of that password.
|
||||||
|
type the password you receive in your email
|
||||||
|
|
||||||
|
then it will ask to you to change a new password
|
||||||
|
just change it to the custom root password you want
|
||||||
|
|
||||||
|
After SSH
|
||||||
|
you can check that docker command is working by typing
|
||||||
|
|
||||||
|
```
|
||||||
|
$root@midascode:~# docker
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Set Up Your Laravel Project
|
||||||
|
|
||||||
|
```
|
||||||
|
$root@midascode:~# apt-get install git
|
||||||
|
$root@midascode:~# git clone https://github.com/laravel/laravel
|
||||||
|
$root@midascode:~# cd laravel
|
||||||
|
$root@midascode:~/laravel/ git submodule add https://github.com/LaraDock/laradock.git
|
||||||
|
$root@midascode:~/laravel/ cd laradock
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Install docker-compose command
|
||||||
|
|
||||||
|
```
|
||||||
|
$root@midascode:~/laravel/laradock# curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose
|
||||||
|
$root@midascode:~/chmod +x /usr/local/bin/docker-compose
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Create Your LaraDock Containers
|
||||||
|
|
||||||
|
```
|
||||||
|
$root@midascode:~/laravel/laradock# docker-compose up -d nginx mysql
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Go to Your Workspace
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose exec workspace bash
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Install laravel Dependencies, Add .env , generate Key and give proper permission certain folder
|
||||||
|
|
||||||
|
```
|
||||||
|
$ root@0e77851d27d3:/var/www/laravel# composer install
|
||||||
|
$ root@0e77851d27d3:/var/www/laravel# cp .env.example .env
|
||||||
|
$ root@0e77851d27d3:/var/www/laravel# php artisan key:generate
|
||||||
|
$ root@0e77851d27d3:/var/www/laravel# exit
|
||||||
|
$root@midascode:~/laravel/laradock# cd ..
|
||||||
|
$root@midascode:~/laravel# sudo chmod -R 777 storage bootstrap/cache
|
||||||
|
```
|
||||||
|
|
||||||
|
you can then view your laravel site at your ipaddress
|
||||||
|
for example
|
||||||
|
```
|
||||||
|
192.168.1.1
|
||||||
|
```
|
||||||
|
|
||||||
|
You will see there Laravel Default Welcome Page
|
||||||
|
|
||||||
|
but if you need to view on your custom domain name
|
||||||
|
which you would.
|
||||||
|
|
||||||
|
#### Using Your Own Domain Name
|
||||||
|
login to your DNS provider
|
||||||
|
Godaddy, Namecheap what ever...
|
||||||
|
And Point the Custom Domain Name Server to
|
||||||
|
|
||||||
|
```
|
||||||
|
ns1.digitalocean.com
|
||||||
|
ns2.digitalocean.com
|
||||||
|
ns3.digitalocean.com
|
||||||
|
```
|
||||||
|
In Your Digital Ocean Account go to
|
||||||
|
```
|
||||||
|
https://cloud.digitalocean.com/networking/domains
|
||||||
|
```
|
||||||
|
add your domain name and choose the server ip you provision earlier
|
||||||
|
|
||||||
|
#### Serve Site With NGINX (HTTP ONLY)
|
||||||
|
Go back to command line
|
||||||
|
```
|
||||||
|
$root@midascode:~/laravel/laradock# cd nginx
|
||||||
|
$root@midascode:~/laravel/laradock/nginx# vim laravel.conf
|
||||||
|
```
|
||||||
|
remove default_server
|
||||||
|
```
|
||||||
|
|
||||||
|
listen 80 default_server;
|
||||||
|
listen [::]:80 default_server ipv6only=on;
|
||||||
|
|
||||||
|
```
|
||||||
|
and add server_name (your custom domain)
|
||||||
|
```
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80 ipv6only=on;
|
||||||
|
server_name yourdomain.com;
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Rebuild Your Nginx
|
||||||
|
```
|
||||||
|
$root@midascode:~/laravel/laradock/nginx# docker-compose down
|
||||||
|
$root@midascode:~/laravel/laradock/nginx# docker-compose build nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Re Run Your Containers MYSQL and NGINX
|
||||||
|
```
|
||||||
|
$root@midascode:~/laravel/laradock/nginx# docker-compose up -d nginx mysql
|
||||||
|
```
|
||||||
|
|
||||||
|
###### View Your Site with HTTP ONLY (http://yourdomain.com)
|
||||||
|
|
||||||
|
#### Run Site on SSL with Let's Encrypt Certificate
|
||||||
|
|
||||||
|
###### Note: You need to Use Caddy here Instead of Nginx
|
||||||
|
|
||||||
|
###### To go Caddy Folders and Edit CaddyFile
|
||||||
|
|
||||||
|
```
|
||||||
|
$root@midascode:~/laravel/laradock# cd caddy
|
||||||
|
$root@midascode:~/laravel/laradock/caddy# vim Caddyfile
|
||||||
|
```
|
||||||
|
|
||||||
|
Remove 0.0.0.0:80
|
||||||
|
|
||||||
|
```
|
||||||
|
0.0.0.0:80
|
||||||
|
root /var/www/laravel/public
|
||||||
|
```
|
||||||
|
and replace with your https://yourdomain.com
|
||||||
|
|
||||||
|
```
|
||||||
|
https://yourdomain.com
|
||||||
|
root /var/www/laravel/public
|
||||||
|
```
|
||||||
|
uncomment tls
|
||||||
|
|
||||||
|
```
|
||||||
|
#tls self-signed
|
||||||
|
```
|
||||||
|
and replace self-signed with your email address
|
||||||
|
|
||||||
|
```
|
||||||
|
tls midascodebreaker@gmai.com
|
||||||
|
```
|
||||||
|
This is needed Prior to Creating Let's Encypt
|
||||||
|
|
||||||
|
#### Run Your Caddy Container without the -d flag and Generate SSL with Let's Encrypt
|
||||||
|
|
||||||
|
```
|
||||||
|
$root@midascode:~/laravel/laradock/caddy# docker-compose up caddy
|
||||||
|
```
|
||||||
|
|
||||||
|
you will be prompt here to enter your email... you may enter it or not
|
||||||
|
```
|
||||||
|
Attaching to laradock_mysql_1, laradock_caddy_1
|
||||||
|
caddy_1 | Activating privacy features...
|
||||||
|
caddy_1 | Your sites will be served over HTTPS automatically using Let's Encrypt.
|
||||||
|
caddy_1 | By continuing, you agree to the Let's Encrypt Subscriber Agreement at:
|
||||||
|
caddy_1 | https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf
|
||||||
|
caddy_1 | Activating privacy features... done.
|
||||||
|
caddy_1 | https://yourdomain.com
|
||||||
|
caddy_1 | http://yourdomain.com
|
||||||
|
```
|
||||||
|
|
||||||
|
After it finish Press Ctrl + C to exit ...
|
||||||
|
|
||||||
|
#### Stop All Containers and ReRun Caddy and Other Containers on Background
|
||||||
|
|
||||||
|
```
|
||||||
|
$root@midascode:~/laravel/laradock/caddy# docker-compose down
|
||||||
|
$root@midascode:~/laravel/laradock/caddy# docker-compose up -d mysql caddy
|
||||||
|
```
|
||||||
|
View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)
|
||||||
|
|
||||||
|
##### Note that Certificate will be Automatically Renew By Caddy
|
||||||
|
|
||||||
|
>References:
|
||||||
|
>
|
||||||
|
- [https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04)
|
||||||
|
- [https://www.digitalocean.com/products/one-click-apps/docker/](https://www.digitalocean.com/products/one-click-apps/docker/)
|
||||||
|
- [https://docs.docker.com/engine/installation/linux/ubuntulinux/](https://docs.docker.com/engine/installation/linux/ubuntulinux/)
|
||||||
|
- [https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/)
|
||||||
|
- [https://caddyserver.com/docs/automatic-https](https://caddyserver.com/docs/automatic-https)
|
||||||
|
- [https://caddyserver.com/docs/tls](https://caddyserver.com/docs/tls)
|
||||||
|
- [https://caddyserver.com/docs/caddyfile](https://caddyserver.com/docs/caddyfile)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
7
aerospike/Dockerfile
Normal file
7
aerospike/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
FROM aerospike:latest
|
||||||
|
|
||||||
|
MAINTAINER Luciano Jr <luciano@lucianojr.com.br>
|
||||||
|
|
||||||
|
RUN rm /etc/aerospike/aerospike.conf
|
||||||
|
|
||||||
|
ADD aerospike.conf /etc/aerospike/aerospike.conf
|
77
aerospike/aerospike.conf
Normal file
77
aerospike/aerospike.conf
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
# Aerospike database configuration file.
|
||||||
|
|
||||||
|
# This stanza must come first.
|
||||||
|
service {
|
||||||
|
user root
|
||||||
|
group root
|
||||||
|
paxos-single-replica-limit 1 # Number of nodes where the replica count is automatically reduced to 1.
|
||||||
|
pidfile /var/run/aerospike/asd.pid
|
||||||
|
service-threads 4
|
||||||
|
transaction-queues 4
|
||||||
|
transaction-threads-per-queue 4
|
||||||
|
proto-fd-max 15000
|
||||||
|
}
|
||||||
|
|
||||||
|
logging {
|
||||||
|
|
||||||
|
# Log file must be an absolute path.
|
||||||
|
file /var/log/aerospike/aerospike.log {
|
||||||
|
context any info
|
||||||
|
}
|
||||||
|
|
||||||
|
# Send log messages to stdout
|
||||||
|
console {
|
||||||
|
context any critical
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
network {
|
||||||
|
service {
|
||||||
|
address any
|
||||||
|
port 3000
|
||||||
|
|
||||||
|
# Uncomment the following to set the `access-address` parameter to the
|
||||||
|
# IP address of the Docker host. This will the allow the server to correctly
|
||||||
|
# publish the address which applications and other nodes in the cluster to
|
||||||
|
# use when addressing this node.
|
||||||
|
# access-address <IPADDR>
|
||||||
|
}
|
||||||
|
|
||||||
|
heartbeat {
|
||||||
|
|
||||||
|
# mesh is used for environments that do not support multicast
|
||||||
|
mode mesh
|
||||||
|
port 3002
|
||||||
|
|
||||||
|
# use asinfo -v 'tip:host=<ADDR>;port=3002' to inform cluster of
|
||||||
|
# other mesh nodes
|
||||||
|
mesh-port 3002
|
||||||
|
|
||||||
|
interval 150
|
||||||
|
timeout 10
|
||||||
|
}
|
||||||
|
|
||||||
|
fabric {
|
||||||
|
port 3001
|
||||||
|
}
|
||||||
|
|
||||||
|
info {
|
||||||
|
port 3003
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace test {
|
||||||
|
replication-factor 2
|
||||||
|
memory-size 1G
|
||||||
|
default-ttl 5d # 5 days, use 0 to never expire/evict.
|
||||||
|
|
||||||
|
# storage-engine memory
|
||||||
|
|
||||||
|
# To use file storage backing, comment out the line above and use the
|
||||||
|
# following lines instead.
|
||||||
|
storage-engine device {
|
||||||
|
file /opt/aerospike/data/test.dat
|
||||||
|
filesize 4G
|
||||||
|
data-in-memory true # Store data in memory in addition to file.
|
||||||
|
}
|
||||||
|
}
|
@ -9,9 +9,10 @@ rewrite {
|
|||||||
ext /
|
ext /
|
||||||
to /index.php?{query}
|
to /index.php?{query}
|
||||||
}
|
}
|
||||||
|
gzip
|
||||||
browse
|
browse
|
||||||
log stdout
|
log /var/log/caddy/access.log
|
||||||
errors stderr
|
errors /var/log/caddy/error.log
|
||||||
# Uncomment to enable TLS (HTTPS)
|
# Uncomment to enable TLS (HTTPS)
|
||||||
# Change the first list to listen on port 443 when enabling TLS
|
# Change the first list to listen on port 443 when enabling TLS
|
||||||
#tls self_signed
|
#tls self_signed
|
||||||
|
@ -2,7 +2,9 @@ FROM alpine:3.4
|
|||||||
|
|
||||||
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
|
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
|
||||||
|
|
||||||
LABEL caddy_version="0.9.0" architecture="amd64"
|
ENV caddy_version=0.9.1
|
||||||
|
|
||||||
|
LABEL caddy_version="$caddy_version" architecture="amd64"
|
||||||
|
|
||||||
RUN apk update \
|
RUN apk update \
|
||||||
&& apk upgrade \
|
&& apk upgrade \
|
||||||
@ -10,16 +12,13 @@ RUN apk update \
|
|||||||
|
|
||||||
RUN curl --silent --show-error --fail --location \
|
RUN curl --silent --show-error --fail --location \
|
||||||
--header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" -o - \
|
--header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" -o - \
|
||||||
"https://github.com/mholt/caddy/releases/download/v0.9.0/caddy_linux_amd64.tar.gz" \
|
"https://github.com/mholt/caddy/releases/download/v$caddy_version/caddy_linux_amd64.tar.gz" \
|
||||||
| tar --no-same-owner -C /usr/bin/ -xz caddy_linux_amd64 \
|
| tar --no-same-owner -C /usr/bin/ -xz caddy_linux_amd64 \
|
||||||
&& mv /usr/bin/caddy_linux_amd64 /usr/bin/caddy \
|
&& mv /usr/bin/caddy_linux_amd64 /usr/bin/caddy \
|
||||||
&& chmod 0755 /usr/bin/caddy \
|
&& chmod 0755 /usr/bin/caddy
|
||||||
&& /usr/bin/caddy -version
|
|
||||||
|
|
||||||
EXPOSE 80 443 2015
|
EXPOSE 80 443 2015
|
||||||
|
|
||||||
WORKDIR /var/www/laravel/public
|
WORKDIR /var/www/laravel/public
|
||||||
|
|
||||||
ENTRYPOINT ["caddy"]
|
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"]
|
||||||
|
|
||||||
CMD ["-conf", "/etc/Caddyfile"]
|
|
||||||
|
@ -8,14 +8,23 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: ./workspace
|
context: ./workspace
|
||||||
args:
|
args:
|
||||||
- INSTALL_MONGO=false
|
|
||||||
- INSTALL_XDEBUG=false
|
- INSTALL_XDEBUG=false
|
||||||
|
- INSTALL_MONGO=false
|
||||||
- INSTALL_NODE=false
|
- INSTALL_NODE=false
|
||||||
|
- INSTALL_DRUSH=false
|
||||||
|
- INSTALL_AEROSPIKE_EXTENSION=false
|
||||||
- COMPOSER_GLOBAL_INSTALL=false
|
- COMPOSER_GLOBAL_INSTALL=false
|
||||||
|
- INSTALL_WORKSPACE_SSH=false
|
||||||
- PUID=1000
|
- PUID=1000
|
||||||
- PGID=1000
|
- PGID=1000
|
||||||
|
- NODE_VERSION=stable
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- volumes_source
|
- volumes_source
|
||||||
|
extra_hosts:
|
||||||
|
# IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts)
|
||||||
|
- "dockerhost:10.0.75.1"
|
||||||
|
ports:
|
||||||
|
- "22:22"
|
||||||
tty: true
|
tty: true
|
||||||
|
|
||||||
### PHP-FPM Container #######################################
|
### PHP-FPM Container #######################################
|
||||||
@ -24,8 +33,12 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: ./php-fpm
|
context: ./php-fpm
|
||||||
args:
|
args:
|
||||||
- INSTALL_MONGO=false
|
|
||||||
- INSTALL_XDEBUG=false
|
- INSTALL_XDEBUG=false
|
||||||
|
- INSTALL_MONGO=false
|
||||||
|
- INSTALL_ZIP_ARCHIVE=false
|
||||||
|
- INSTALL_MEMCACHED=false
|
||||||
|
- INSTALL_OPCACHE=false
|
||||||
|
- INSTALL_AEROSPIKE_EXTENSION=false
|
||||||
dockerfile: Dockerfile-70
|
dockerfile: Dockerfile-70
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- volumes_source
|
- volumes_source
|
||||||
@ -33,6 +46,14 @@ services:
|
|||||||
- "9000"
|
- "9000"
|
||||||
links:
|
links:
|
||||||
- workspace
|
- workspace
|
||||||
|
extra_hosts:
|
||||||
|
# IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts)
|
||||||
|
- "dockerhost:10.0.75.1"
|
||||||
|
ports:
|
||||||
|
- "22:22"
|
||||||
|
environment:
|
||||||
|
# IMPORTANT: Set the Remote Interpreter entry matching name to `laravel`
|
||||||
|
- PHP_IDE_CONFIG="serverName=laravel"
|
||||||
|
|
||||||
### Nginx Server Container ##################################
|
### Nginx Server Container ##################################
|
||||||
|
|
||||||
@ -150,6 +171,20 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "6379:6379"
|
- "6379:6379"
|
||||||
|
|
||||||
|
### Aerospike c Container #########################################
|
||||||
|
|
||||||
|
aerospike:
|
||||||
|
build: ./aerospike
|
||||||
|
volumes_from:
|
||||||
|
- workspace
|
||||||
|
- volumes_data
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
- "3001:3001"
|
||||||
|
- "3002:3002"
|
||||||
|
- "3003:3003"
|
||||||
|
|
||||||
|
|
||||||
### Memcached Container #####################################
|
### Memcached Container #####################################
|
||||||
|
|
||||||
memcached:
|
memcached:
|
||||||
@ -171,6 +206,21 @@ services:
|
|||||||
links:
|
links:
|
||||||
- php-fpm
|
- php-fpm
|
||||||
|
|
||||||
|
### RabbitMQ Container ####################################
|
||||||
|
|
||||||
|
rabbitmq:
|
||||||
|
build: ./rabbitmq
|
||||||
|
ports:
|
||||||
|
- "5672:5672"
|
||||||
|
- "15671:15671"
|
||||||
|
- "8080:15672"
|
||||||
|
privileged: true
|
||||||
|
environment:
|
||||||
|
RABBITMQ_DEFAULT_USER: guest
|
||||||
|
RABBITMQ_DEFAULT_PASS: guest
|
||||||
|
links:
|
||||||
|
- php-fpm
|
||||||
|
|
||||||
### Beanstalkd Console Container ############################
|
### Beanstalkd Console Container ############################
|
||||||
|
|
||||||
beanstalkd-console:
|
beanstalkd-console:
|
||||||
@ -192,27 +242,51 @@ services:
|
|||||||
- "2015:2015"
|
- "2015:2015"
|
||||||
volumes:
|
volumes:
|
||||||
- ./caddy/Caddyfile:/etc/Caddyfile
|
- ./caddy/Caddyfile:/etc/Caddyfile
|
||||||
|
- ./logs/caddy:/var/log/caddy
|
||||||
links:
|
links:
|
||||||
- php-fpm
|
- php-fpm
|
||||||
|
|
||||||
|
### phpMyAdmin Container ##################################
|
||||||
|
|
||||||
|
phpmyadmin:
|
||||||
|
build: ./phpmyadmin
|
||||||
|
environment:
|
||||||
|
PMA_ARBITRARY: 1
|
||||||
|
MYSQL_USER: homestead
|
||||||
|
MYSQL_PASSWORD: secret
|
||||||
|
MYSQL_ROOT_PASSWORD: root
|
||||||
|
volumes_from:
|
||||||
|
- volumes_data
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
links:
|
||||||
|
# for mysql container
|
||||||
|
- "mysql:db"
|
||||||
|
# for mariadb container
|
||||||
|
# - "mariadb:db"
|
||||||
|
|
||||||
### Laravel Application Code Container ######################
|
### Laravel Application Code Container ######################
|
||||||
|
|
||||||
volumes_source:
|
volumes_source:
|
||||||
build: ./volumes/application
|
image: tianon/true
|
||||||
volumes:
|
volumes:
|
||||||
- ../:/var/www/laravel
|
- ../:/var/www/laravel
|
||||||
|
# Demonstration of how to mount multiple sites
|
||||||
|
# - ../../site_a/:/var/www/site_a
|
||||||
|
# - ../../site_b/:/var/www/site_b
|
||||||
|
|
||||||
### Databases Data Container ################################
|
### Databases Data Container ################################
|
||||||
|
|
||||||
volumes_data:
|
volumes_data:
|
||||||
build: ./volumes/data
|
image: tianon/true
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/mysql:/var/lib/mysql
|
- ./data/mysql:/var/lib/mysql
|
||||||
- ./data/postgres:/var/lib/postgres
|
- ./data/postgres:/var/lib/postgres
|
||||||
- ./data/mariadb:/var/lib/mariadb
|
|
||||||
- ./data/memcached:/var/lib/memcached
|
- ./data/memcached:/var/lib/memcached
|
||||||
- ./data/redis:/data
|
- ./data/redis:/data
|
||||||
- ./data/neo4j:/var/lib/neo4j/data
|
- ./data/neo4j:/var/lib/neo4j/data
|
||||||
- ./data/mongo:/data/db
|
- ./data/mongo:/data/db
|
||||||
|
- ./data/aerospike:/opt/aerospike/data
|
||||||
|
- ./data/sessions:/sessions
|
||||||
|
|
||||||
### Add more Containers below ###############################
|
### Add more Containers below ###############################
|
||||||
|
@ -3,7 +3,7 @@ FROM nginx:alpine
|
|||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
ADD nginx.conf /etc/nginx/
|
ADD nginx.conf /etc/nginx/
|
||||||
ADD laravel.conf /etc/nginx/conf.d/laravel.conf
|
COPY sites/*.conf /etc/nginx/sites-available/
|
||||||
|
|
||||||
ARG PHP_UPSTREAM=php-fpm
|
ARG PHP_UPSTREAM=php-fpm
|
||||||
|
|
||||||
|
@ -24,5 +24,6 @@ http {
|
|||||||
gzip on;
|
gzip on;
|
||||||
gzip_disable "msie6";
|
gzip_disable "msie6";
|
||||||
include /etc/nginx/conf.d/*.conf;
|
include /etc/nginx/conf.d/*.conf;
|
||||||
|
include /etc/nginx/sites-available/*;
|
||||||
open_file_cache max=100;
|
open_file_cache max=100;
|
||||||
}
|
}
|
||||||
|
57
nginx/sites/framework-examples/drupal_8.conf
Normal file
57
nginx/sites/framework-examples/drupal_8.conf
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
#domain name
|
||||||
|
server_name drupal8.dev;
|
||||||
|
|
||||||
|
#file document root. This has to match one of the volumes in docer-composer.yml
|
||||||
|
root /var/www/drupal8;
|
||||||
|
|
||||||
|
# This is the full path to your index file
|
||||||
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
|
## serve imagecache files directly or redirect to drupal if they do not exist.
|
||||||
|
location ~* files/styles {
|
||||||
|
access_log off;
|
||||||
|
expires 30d;
|
||||||
|
try_files $uri @drupal;
|
||||||
|
}
|
||||||
|
|
||||||
|
## serve imagecache files directly or redirect to drupal if they do not exist.
|
||||||
|
location ~* ^.+.(xsl|xml)$ {
|
||||||
|
access_log off;
|
||||||
|
expires 1d;
|
||||||
|
try_files $uri @drupal;
|
||||||
|
}
|
||||||
|
|
||||||
|
## Images and static content is treated different
|
||||||
|
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
|
||||||
|
access_log off;
|
||||||
|
expires 30d;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
index index.php;
|
||||||
|
# This is cool because no php is touched for static content
|
||||||
|
try_files $uri $uri/ @rewrite;
|
||||||
|
expires max;
|
||||||
|
}
|
||||||
|
|
||||||
|
location @drupal {
|
||||||
|
rewrite ^/(.*)$ /index.php?q=$1 last;
|
||||||
|
}
|
||||||
|
|
||||||
|
location @rewrite {
|
||||||
|
# Some modules enforce no slash (/) at the end of the URL
|
||||||
|
# Else this rewrite block wouldn't be needed (GlobalRedirect)
|
||||||
|
rewrite ^/(.*)$ /index.php?q=$1;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ .php$ {
|
||||||
|
fastcgi_pass php-upstream;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,9 @@
|
|||||||
server {
|
server {
|
||||||
|
|
||||||
listen 80 default_server;
|
listen 80 default_server;
|
||||||
listen [::]:80 default_server ipv6only=on;
|
listen [::]:80 default_server ipv6only=on;
|
||||||
|
|
||||||
|
server_name laravel;
|
||||||
root /var/www/laravel/public;
|
root /var/www/laravel/public;
|
||||||
index index.php index.html index.htm;
|
index index.php index.html index.htm;
|
||||||
|
|
28
nginx/sites/site_a.conf
Normal file
28
nginx/sites/site_a.conf
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
server {
|
||||||
|
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
server_name site_a;
|
||||||
|
root /var/www/site_a/public;
|
||||||
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php$is_args$args;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
try_files $uri /index.php =404;
|
||||||
|
fastcgi_pass php-upstream;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ /\.ht {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
28
nginx/sites/site_b.conf
Normal file
28
nginx/sites/site_b.conf
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
server {
|
||||||
|
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
server_name site_b;
|
||||||
|
root /var/www/site_b/public;
|
||||||
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php$is_args$args;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
try_files $uri /index.php =404;
|
||||||
|
fastcgi_pass php-upstream;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ /\.ht {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
|||||||
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
||||||
#
|
#
|
||||||
|
|
||||||
FROM laradock/php-fpm:5.6--1.1
|
FROM laradock/php-fpm:5.6--1.2
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
@ -32,9 +32,8 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
#
|
#
|
||||||
# Optional Software's will only be installed if you set them to `true`
|
# Optional Software's will only be installed if you set them to `true`
|
||||||
# in the `docker-compose.yml` before the build.
|
# in the `docker-compose.yml` before the build.
|
||||||
#
|
# Example:
|
||||||
# - INSTALL_XDEBUG= false
|
# - INSTALL_ZIP_ARCHIVE=true
|
||||||
# - INSTALL_MONGO= false
|
|
||||||
#
|
#
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
@ -42,22 +41,55 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
ARG INSTALL_XDEBUG=true
|
ARG INSTALL_XDEBUG=true
|
||||||
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||||
# Install the xdebug extention
|
# Install the xdebug extension
|
||||||
pecl install xdebug && \
|
pecl install xdebug && \
|
||||||
docker-php-ext-enable xdebug \
|
docker-php-ext-enable xdebug \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
# Copy xdebug configration for remote debugging
|
||||||
|
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# MongoDB:
|
# MongoDB:
|
||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
ARG INSTALL_MONGO=true
|
ARG INSTALL_MONGO=true
|
||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
|
||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||||
# Install the mongodb extention
|
# Install the mongodb extension
|
||||||
pecl install mongodb \
|
pecl install mongodb && \
|
||||||
|
docker-php-ext-enable mongodb \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# ZipArchive:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
ARG INSTALL_ZIP_ARCHIVE=true
|
||||||
|
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||||
|
# Install the zip extension
|
||||||
|
pecl install zip && \
|
||||||
|
docker-php-ext-enable zip \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# PHP Memcached:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
ARG INSTALL_MEMCACHED=true
|
||||||
|
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||||
|
# Install the php memcached extension
|
||||||
|
pecl install memcached && \
|
||||||
|
docker-php-ext-enable memcached \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Opcache:
|
||||||
|
#####################################
|
||||||
|
ARG INSTALL_OPCACHE=true
|
||||||
|
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||||
|
docker-php-ext-install opcache && \
|
||||||
|
docker-php-ext-enable opcache \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
||||||
#
|
#
|
||||||
|
|
||||||
FROM laradock/php-fpm:7.0--1.1
|
FROM laradock/php-fpm:7.0--1.2
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
@ -32,9 +32,8 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
#
|
#
|
||||||
# Optional Software's will only be installed if you set them to `true`
|
# Optional Software's will only be installed if you set them to `true`
|
||||||
# in the `docker-compose.yml` before the build.
|
# in the `docker-compose.yml` before the build.
|
||||||
#
|
# Example:
|
||||||
# - INSTALL_XDEBUG= false
|
# - INSTALL_ZIP_ARCHIVE=true
|
||||||
# - INSTALL_MONGO= false
|
|
||||||
#
|
#
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
@ -42,24 +41,92 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
ARG INSTALL_XDEBUG=true
|
ARG INSTALL_XDEBUG=true
|
||||||
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||||
# Install the xdebug extention
|
# Install the xdebug extension
|
||||||
pecl install xdebug && \
|
pecl install xdebug && \
|
||||||
docker-php-ext-enable xdebug \
|
docker-php-ext-enable xdebug \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
# Copy xdebug configration for remote debugging
|
||||||
|
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# MongoDB:
|
# MongoDB:
|
||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
ARG INSTALL_MONGO=true
|
ARG INSTALL_MONGO=true
|
||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
|
||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||||
# Install the mongodb extention
|
# Install the mongodb extension
|
||||||
pecl install mongodb \
|
pecl install mongodb && \
|
||||||
|
docker-php-ext-enable mongodb \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# ZipArchive:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
ARG INSTALL_ZIP_ARCHIVE=true
|
||||||
|
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||||
|
# Install the zip extension
|
||||||
|
pecl install zip && \
|
||||||
|
docker-php-ext-enable zip \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# PHP Memcached:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
ARG INSTALL_MEMCACHED=true
|
||||||
|
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||||
|
# Install the php memcached extension
|
||||||
|
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
|
||||||
|
&& mkdir -p memcached \
|
||||||
|
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
||||||
|
&& ( \
|
||||||
|
cd memcached \
|
||||||
|
&& phpize \
|
||||||
|
&& ./configure \
|
||||||
|
&& make -j$(nproc) \
|
||||||
|
&& make install \
|
||||||
|
) \
|
||||||
|
&& rm -r memcached \
|
||||||
|
&& rm /tmp/memcached.tar.gz \
|
||||||
|
&& docker-php-ext-enable memcached \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# PHP Aerospike:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
ARG INSTALL_AEROSPIKE_EXTENSION=true
|
||||||
|
ENV INSTALL_AEROSPIKE_EXTENSION ${INSTALL_AEROSPIKE_EXTENSION}
|
||||||
|
# Copy aerospike configration for remote debugging
|
||||||
|
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
|
||||||
|
RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \
|
||||||
|
# Install the php aerospike extension
|
||||||
|
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/luciano-jr/aerospike-client-php/archive/master.tar.gz" \
|
||||||
|
&& mkdir -p aerospike-client-php \
|
||||||
|
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||||
|
&& ( \
|
||||||
|
cd aerospike-client-php/src/aerospike \
|
||||||
|
&& phpize \
|
||||||
|
&& ./build.sh \
|
||||||
|
&& make install \
|
||||||
|
) \
|
||||||
|
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Opcache:
|
||||||
|
#####################################
|
||||||
|
ARG INSTALL_OPCACHE=true
|
||||||
|
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||||
|
docker-php-ext-install opcache && \
|
||||||
|
docker-php-ext-enable opcache \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
# Final Touch
|
# Final Touch
|
||||||
@ -77,4 +144,4 @@ WORKDIR /var/www/laravel
|
|||||||
|
|
||||||
CMD ["php-fpm"]
|
CMD ["php-fpm"]
|
||||||
|
|
||||||
EXPOSE 9000
|
EXPOSE 9000
|
3
php-fpm/aerospike.ini
Normal file
3
php-fpm/aerospike.ini
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
extension=aerospike.so
|
||||||
|
aerospike.udf.lua_system_path=/usr/local/aerospike/lua
|
||||||
|
aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua
|
@ -1,7 +1,6 @@
|
|||||||
date.timezone=UTC
|
date.timezone=UTC
|
||||||
display_errors=Off
|
display_errors=Off
|
||||||
log_errors=On
|
log_errors=On
|
||||||
extension=mongodb.so
|
|
||||||
|
|
||||||
; Maximum amount of memory a script may consume (128MB)
|
; Maximum amount of memory a script may consume (128MB)
|
||||||
; http://php.net/memory-limit
|
; http://php.net/memory-limit
|
||||||
|
12
php-fpm/xdebug.ini
Normal file
12
php-fpm/xdebug.ini
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
|
||||||
|
|
||||||
|
xdebug.remote_autostart=1
|
||||||
|
xdebug.remote_enable=1
|
||||||
|
xdebug.remote_connect_back=1
|
||||||
|
xdebug.cli_color=1
|
||||||
|
xdebug.remote_handler=dbgp
|
||||||
|
xdebug.remote_mode=req
|
||||||
|
|
||||||
|
xdebug.remote_port=9000
|
||||||
|
xdebug.remote_host=dockerhost
|
||||||
|
xdebug.idekey=PHPSTORM
|
9
phpmyadmin/Dockerfile
Normal file
9
phpmyadmin/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
FROM phpmyadmin/phpmyadmin
|
||||||
|
|
||||||
|
MAINTAINER Bo-Yi Wu <appleboy.tw@gmail.com>
|
||||||
|
|
||||||
|
# Add volume for sessions to allow session persistence
|
||||||
|
VOLUME /sessions
|
||||||
|
|
||||||
|
# We expose phpMyAdmin on port 80
|
||||||
|
EXPOSE 80
|
12
rabbitmq/Dockerfile
Normal file
12
rabbitmq/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#
|
||||||
|
# RabbitMQ Dockerfile
|
||||||
|
#
|
||||||
|
# https://github.com/dockerfile/rabbitmq
|
||||||
|
#
|
||||||
|
|
||||||
|
# Pull base image.
|
||||||
|
FROM rabbitmq
|
||||||
|
|
||||||
|
RUN rabbitmq-plugins enable --offline rabbitmq_management
|
||||||
|
|
||||||
|
EXPOSE 15671 15672
|
@ -1,7 +0,0 @@
|
|||||||
FROM debian:jessie
|
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|
||||||
|
|
||||||
WORKDIR /var/www/laravel
|
|
||||||
|
|
||||||
CMD ["true"]
|
|
@ -1,5 +0,0 @@
|
|||||||
FROM debian:jessie
|
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|
||||||
|
|
||||||
CMD ["true"]
|
|
@ -37,6 +37,7 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
# - INSTALL_MONGO= false
|
# - INSTALL_MONGO= false
|
||||||
# - COMPOSER_GLOBAL_INSTALL= false
|
# - COMPOSER_GLOBAL_INSTALL= false
|
||||||
# - INSTALL_NODE= false
|
# - INSTALL_NODE= false
|
||||||
|
# - INSTALL_DRUSH= false
|
||||||
#
|
#
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
@ -48,10 +49,35 @@ ARG INSTALL_XDEBUG=true
|
|||||||
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||||
# Load the xdebug extension only with phpunit commands
|
# Load the xdebug extension only with phpunit commands
|
||||||
|
apt-get update && \
|
||||||
apt-get install -y --force-yes php7.0-xdebug && \
|
apt-get install -y --force-yes php7.0-xdebug && \
|
||||||
sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \
|
sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \
|
||||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc \
|
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc \
|
||||||
;fi
|
;fi
|
||||||
|
# ADD for REMOTE debugging
|
||||||
|
COPY ./xdebug.ini /etc/php/7.0/cli/conf.d/xdebug.ini
|
||||||
|
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# ssh:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# Check if ssh needs to be installed
|
||||||
|
# See: https://github.com/phusion/baseimage-docker#enabling_ssh
|
||||||
|
ADD insecure_id_rsa /tmp/id_rsa
|
||||||
|
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
|
||||||
|
ARG INSTALL_WORKSPACE_SSH=true
|
||||||
|
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
||||||
|
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
||||||
|
rm -f /etc/service/sshd/down && \
|
||||||
|
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
||||||
|
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
||||||
|
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
||||||
|
&& rm -f /tmp/id_rsa* \
|
||||||
|
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
||||||
|
&& chmod 400 /root/.ssh/id_rsa \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# MongoDB:
|
# MongoDB:
|
||||||
@ -75,7 +101,7 @@ ARG PUID=1000
|
|||||||
ARG PGID=1000
|
ARG PGID=1000
|
||||||
RUN groupadd -g $PGID laradock && \
|
RUN groupadd -g $PGID laradock && \
|
||||||
useradd -u $PUID -g laradock -m laradock
|
useradd -u $PUID -g laradock -m laradock
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# Composer:
|
# Composer:
|
||||||
#####################################
|
#####################################
|
||||||
@ -95,27 +121,39 @@ RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
|||||||
composer global install \
|
composer global install \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Drush:
|
||||||
|
#####################################
|
||||||
|
USER root
|
||||||
|
ENV DRUSH_VERSION 8.1.2
|
||||||
|
ARG INSTALL_DRUSH=true
|
||||||
|
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
|
||||||
|
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
||||||
|
# Install Drush 8 with the phar file.
|
||||||
|
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
|
||||||
|
chmod +x /usr/local/bin/drush && \
|
||||||
|
drush core-status \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
USER laradock
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# Node / NVM:
|
# Node / NVM:
|
||||||
#####################################
|
#####################################
|
||||||
|
|
||||||
# Check if NVM needs to be installed
|
# Check if NVM needs to be installed
|
||||||
|
ARG NODE_VERSION=stable
|
||||||
|
ENV NODE_VERSION ${NODE_VERSION}
|
||||||
ARG INSTALL_NODE=true
|
ARG INSTALL_NODE=true
|
||||||
ENV INSTALL_NODE ${INSTALL_NODE}
|
ENV INSTALL_NODE ${INSTALL_NODE}
|
||||||
|
ENV NVM_DIR /home/laradock/.nvm
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||||
# Install nvm (A Node Version Manager)
|
# Install nvm (A Node Version Manager)
|
||||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash \
|
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | bash && \
|
||||||
;fi
|
. ~/.nvm/nvm.sh && \
|
||||||
# Again check if NVM needs to be installed
|
nvm install ${NODE_VERSION} && \
|
||||||
# I had to split this condition link this because when I get it inside the above if statement is refuses to work!
|
nvm use ${NODE_VERSION} && \
|
||||||
ENV if [ ${INSTALL_NODE} = true ]; then \
|
nvm alias ${NODE_VERSION} && \
|
||||||
# Set the ENV
|
|
||||||
NVM_DIR=/home/laradock/.nvm \
|
|
||||||
# Install NodeJS with NVM
|
|
||||||
RUN . ~/.nvm/nvm.sh && \
|
|
||||||
nvm install stable && \
|
|
||||||
nvm use stable && \
|
|
||||||
nvm alias stable && \
|
|
||||||
npm install -g gulp bower \
|
npm install -g gulp bower \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
@ -127,6 +165,28 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
|
|||||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# PHP Aerospike:
|
||||||
|
#####################################
|
||||||
|
USER root
|
||||||
|
ARG INSTALL_AEROSPIKE_EXTENSION=true
|
||||||
|
ENV INSTALL_AEROSPIKE_EXTENSION ${INSTALL_AEROSPIKE_EXTENSION}
|
||||||
|
# Copy aerospike configration for remote debugging
|
||||||
|
COPY ./aerospike.ini /etc/php/7.0/cli/conf.d/aerospike.ini
|
||||||
|
RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = true ]; then \
|
||||||
|
# Install the php aerospike extension
|
||||||
|
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/luciano-jr/aerospike-client-php/archive/master.tar.gz" \
|
||||||
|
&& mkdir -p aerospike-client-php \
|
||||||
|
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||||
|
&& ( \
|
||||||
|
cd aerospike-client-php/src/aerospike \
|
||||||
|
&& phpize \
|
||||||
|
&& ./build.sh \
|
||||||
|
&& make install \
|
||||||
|
) \
|
||||||
|
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||||
|
;fi
|
||||||
|
|
||||||
#
|
#
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
# Final Touch
|
# Final Touch
|
||||||
|
3
workspace/aerospike.ini
Normal file
3
workspace/aerospike.ini
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
extension=aerospike.so
|
||||||
|
aerospike.udf.lua_system_path=/usr/local/aerospike/lua
|
||||||
|
aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua
|
51
workspace/insecure_id_rsa
Normal file
51
workspace/insecure_id_rsa
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
-----END RSA PRIVATE KEY-----
|
46
workspace/insecure_id_rsa.ppk
Normal file
46
workspace/insecure_id_rsa.ppk
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
PuTTY-User-Key-File-2: ssh-rsa
|
||||||
|
Encryption: none
|
||||||
|
Comment: imported-openssh-key
|
||||||
|
Public-Lines: 12
|
||||||
|
AAAAB3NzaC1yc2EAAAADAQABAAACAQD0tfQNVXxVjST53ny/5Op7ot+GeIGEGAEn
|
||||||
|
r9kgYAXK6GqnJ/3UOfWKFxl4gEusLj4hpGrT/GJVx2nIG7d/IaRifJvns+Lak4Wj
|
||||||
|
+17zyPRF54/mic6a0MAREJH5aTOLuSK+DhnhTUqAt4mfdHpYmBXWdTAXDCg8gP5Q
|
||||||
|
LdGkdxL9M+GBk4tKiDx1hRfHV9uY6ci0lspQrhnPzzeWLktTA8uWYZlus1gv3SXX
|
||||||
|
6zVD2+XB6/J7ZarNcK9iHoMLddFggSdnGs6kNLJQe0DAwncdeCQizcdXV2A9O33v
|
||||||
|
aY/b0A1obUxuoCit629AwyQ9C/71f3rBSrfgUSb1pOVPmhLRJDZenf/NS8FIW194
|
||||||
|
/u5slvr1u6fj/iiCYctt0PNg00UAnlybWDDKD3l5e8Kbl16uTw1/5AEc6Wl3aCmt
|
||||||
|
WYpwRGeue/hnUzOXr9/SjhQLfB+ZCASt83N+u0kV7ni7G5/04z11dqZwkk6x1SAz
|
||||||
|
WGJnp76piwd4AP2fu8KqNAmWsyEIZmmR5JSGS5i4sGuSGog6rZWop1LwIfNjdOLF
|
||||||
|
bs+rnF0oOmpgZReo8fH+PmOkq3iHaPQvXO3Cj2d52HVxtHI+n2iKjDu3CzHIP31v
|
||||||
|
fqsZKHfmoo3ckFW4yfrPcXy0gQswPj0jJUIbKLb6OfuptUsQ5SvkiwWoW4irnO3l
|
||||||
|
KF9KLo3t7w==
|
||||||
|
Private-Lines: 28
|
||||||
|
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
|
||||||
|
k7Fo
|
||||||
|
Private-MAC: 4ea4cef3fa63f1068dcd512c477c61dd7e85bb38
|
1
workspace/insecure_id_rsa.pub
Normal file
1
workspace/insecure_id_rsa.pub
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQD0tfQNVXxVjST53ny/5Op7ot+GeIGEGAEnr9kgYAXK6GqnJ/3UOfWKFxl4gEusLj4hpGrT/GJVx2nIG7d/IaRifJvns+Lak4Wj+17zyPRF54/mic6a0MAREJH5aTOLuSK+DhnhTUqAt4mfdHpYmBXWdTAXDCg8gP5QLdGkdxL9M+GBk4tKiDx1hRfHV9uY6ci0lspQrhnPzzeWLktTA8uWYZlus1gv3SXX6zVD2+XB6/J7ZarNcK9iHoMLddFggSdnGs6kNLJQe0DAwncdeCQizcdXV2A9O33vaY/b0A1obUxuoCit629AwyQ9C/71f3rBSrfgUSb1pOVPmhLRJDZenf/NS8FIW194/u5slvr1u6fj/iiCYctt0PNg00UAnlybWDDKD3l5e8Kbl16uTw1/5AEc6Wl3aCmtWYpwRGeue/hnUzOXr9/SjhQLfB+ZCASt83N+u0kV7ni7G5/04z11dqZwkk6x1SAzWGJnp76piwd4AP2fu8KqNAmWsyEIZmmR5JSGS5i4sGuSGog6rZWop1LwIfNjdOLFbs+rnF0oOmpgZReo8fH+PmOkq3iHaPQvXO3Cj2d52HVxtHI+n2iKjDu3CzHIP31vfqsZKHfmoo3ckFW4yfrPcXy0gQswPj0jJUIbKLb6OfuptUsQ5SvkiwWoW4irnO3lKF9KLo3t7w== insecure@laradock
|
12
workspace/xdebug.ini
Normal file
12
workspace/xdebug.ini
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
|
||||||
|
|
||||||
|
xdebug.remote_autostart=1
|
||||||
|
xdebug.remote_enable=1
|
||||||
|
xdebug.remote_connect_back=1
|
||||||
|
xdebug.cli_color=1
|
||||||
|
xdebug.remote_handler=dbgp
|
||||||
|
xdebug.remote_mode=req
|
||||||
|
|
||||||
|
xdebug.remote_port=9000
|
||||||
|
xdebug.remote_host=dockerhost
|
||||||
|
xdebug.idekey=PHPSTORM
|
101
xdebugPhpFpm
Normal file
101
xdebugPhpFpm
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
# NOTE: At the moment, this has only been confirmed to work with PHP 7
|
||||||
|
|
||||||
|
|
||||||
|
# Grab full name of php-fpm container
|
||||||
|
PHP_FPM_CONTAINER=$(docker-compose ps | grep php-fpm | cut -d" " -f 1)
|
||||||
|
|
||||||
|
|
||||||
|
# Grab OS type
|
||||||
|
if [[ "$(uname)" == "Darwin" ]]; then
|
||||||
|
OS_TYPE="OSX"
|
||||||
|
else
|
||||||
|
OS_TYPE=$(expr substr $(uname -s) 1 5)
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
xdebug_status ()
|
||||||
|
{
|
||||||
|
echo 'xDebug status'
|
||||||
|
|
||||||
|
# If running on Windows, need to prepend with winpty :(
|
||||||
|
if [[ $OS_TYPE == "MINGW" ]]; then
|
||||||
|
winpty docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
|
||||||
|
|
||||||
|
else
|
||||||
|
docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
xdebug_start ()
|
||||||
|
{
|
||||||
|
echo 'Start xDebug'
|
||||||
|
|
||||||
|
# And uncomment line with xdebug extension, thus enabling it
|
||||||
|
ON_CMD="sed -i 's/^;zend_extension=/zend_extension=/g' \
|
||||||
|
/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini"
|
||||||
|
|
||||||
|
|
||||||
|
# If running on Windows, need to prepend with winpty :(
|
||||||
|
if [[ $OS_TYPE == "MINGW" ]]; then
|
||||||
|
winpty docker exec -it $PHP_FPM_CONTAINER bash -c "${ON_CMD}"
|
||||||
|
docker restart $PHP_FPM_CONTAINER
|
||||||
|
winpty docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
|
||||||
|
|
||||||
|
else
|
||||||
|
docker exec -it $PHP_FPM_CONTAINER bash -c "${ON_CMD}"
|
||||||
|
docker restart $PHP_FPM_CONTAINER
|
||||||
|
docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
xdebug_stop ()
|
||||||
|
{
|
||||||
|
echo 'Stop xDebug'
|
||||||
|
|
||||||
|
# Comment out xdebug extension line
|
||||||
|
OFF_CMD="sed -i 's/^zend_extension=/;zend_extension=/g' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini"
|
||||||
|
|
||||||
|
|
||||||
|
# If running on Windows, need to prepend with winpty :(
|
||||||
|
if [[ $OS_TYPE == "MINGW" ]]; then
|
||||||
|
# This is the equivalent of:
|
||||||
|
# winpty docker exec -it laradock_php-fpm_1 bash -c 'bla bla bla'
|
||||||
|
# Thanks to @michaelarnauts at https://github.com/docker/compose/issues/593
|
||||||
|
winpty docker exec -it $PHP_FPM_CONTAINER bash -c "${OFF_CMD}"
|
||||||
|
docker restart $PHP_FPM_CONTAINER
|
||||||
|
#docker-compose restart php-fpm
|
||||||
|
winpty docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
|
||||||
|
|
||||||
|
else
|
||||||
|
docker exec -it $PHP_FPM_CONTAINER bash -c "${OFF_CMD}"
|
||||||
|
# docker-compose restart php-fpm
|
||||||
|
docker restart $PHP_FPM_CONTAINER
|
||||||
|
docker exec -it $PHP_FPM_CONTAINER bash -c 'php -v'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case $@ in
|
||||||
|
stop|STOP)
|
||||||
|
xdebug_stop
|
||||||
|
;;
|
||||||
|
start|START)
|
||||||
|
xdebug_start
|
||||||
|
;;
|
||||||
|
status|STATUS)
|
||||||
|
xdebug_status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "xDebug [Stop | Start | Status] in the ${PHP_FPM_CONTAINER} container."
|
||||||
|
echo "xDebug must have already been installed."
|
||||||
|
echo "Usage:"
|
||||||
|
echo " ./xdebugPhpFpm stop|start|status"
|
||||||
|
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 1
|
Reference in New Issue
Block a user