Compare commits
169 Commits
Author | SHA1 | Date | |
---|---|---|---|
8d1ba2e802 | |||
c9415b12c0 | |||
8544de7ea1 | |||
62e0f0443c | |||
a2847316c4 | |||
9d212afc8c | |||
89a77bee24 | |||
fb26035e5c | |||
c7a76dd683 | |||
781f5ff972 | |||
5c0e55204e | |||
dd3ab5ade1 | |||
2e5d2a743c | |||
5635b47c6f | |||
56f422ade0 | |||
58d6d8e745 | |||
7ecb712e76 | |||
3abb6152c8 | |||
5221544b98 | |||
2396b4799c | |||
08fa1bc95c | |||
2415566230 | |||
5fea003ffe | |||
e9af2a4fb3 | |||
d0dea21cc5 | |||
942d1cfbed | |||
57ec81ed52 | |||
8d62070773 | |||
8933b827b3 | |||
6f435584a9 | |||
a1fd2aabcd | |||
3e2b413094 | |||
ec3ebb9701 | |||
cfc48b3791 | |||
3725ad4c46 | |||
a0b75bac46 | |||
489740848f | |||
b2aa38877b | |||
51703f00fc | |||
f1716a2767 | |||
5640bd963d | |||
8bb69beb84 | |||
76afeedc33 | |||
16b6223ba9 | |||
1b88c2c9d8 | |||
b254d4a9c9 | |||
2ed475f1ef | |||
3a5100097a | |||
15b3fe65c1 | |||
da6face95e | |||
a31cef6eb1 | |||
a005281f4f | |||
907c694834 | |||
8c392e94f2 | |||
d538274a0f | |||
beeea8dc0e | |||
53b0507eb2 | |||
a1a5b3d49f | |||
4f5dfbcb13 | |||
f275f88396 | |||
6cc58de67e | |||
b2da8aeb3f | |||
1345164ac3 | |||
a9ecdd0008 | |||
1dab0c48d8 | |||
91f1d4347c | |||
4013553dbb | |||
07e4bd174e | |||
7999399e9a | |||
d684cb4742 | |||
3c27c14b99 | |||
3473b788cf | |||
1a5c7a7b3f | |||
616e9c7d92 | |||
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 | |||
5ebb061b70 | |||
ad49981dd6 | |||
e135fbb970 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
.idea
|
||||
/logs
|
||||
/data
|
||||
.env
|
||||
.env
|
||||
|
@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
# Contributing to LaraDock
|
||||
|
||||
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.
|
||||
|
||||
|
||||
### Before Submitting a Pull Request (PR)
|
||||
|
||||
### Submitting a Pull Request (PR)
|
||||
Before you submit your pull request consider the following guidelines:
|
||||
Always Test everything and make sure its working:
|
||||
|
||||
- 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.
|
||||
|
||||
@ -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
|
||||
from the main (upstream) repository:
|
||||
@ -127,4 +137,4 @@ from the main (upstream) repository:
|
||||
|
||||
|
||||
<br>
|
||||
### Happy Coding :)
|
||||
### Happy Coding :)
|
||||
|
968
README-zh.md
Normal file
968
README-zh.md
Normal file
@ -0,0 +1,968 @@
|
||||
# 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))
|
||||
|
||||
**优秀的人:**
|
||||
|
||||
- [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)
|
372
README.md
372
README.md
@ -13,13 +13,17 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## Contents
|
||||
|
||||
|
||||
- [Readme Languages](#)
|
||||
- [English (Default)](#)
|
||||
- [Chinese](https://github.com/LaraDock/laradock/blob/master/README-zh.md)
|
||||
- [Intro](#Intro)
|
||||
- [Features](#features)
|
||||
- [Supported Software's](#Supported-Containers)
|
||||
- [Supported Software](#Supported-Containers)
|
||||
- [What is Docker](#what-is-docker)
|
||||
- [What is Laravel](#what-is-laravel)
|
||||
- [Why Docker not Vagrant](#why-docker-not-vagrant)
|
||||
@ -37,23 +41,34 @@ It's like Laravel Homestead but for Docker instead of Vagrant.
|
||||
- [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)
|
||||
- [Add more Software (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)
|
||||
- [Use phpMyAdmin](#Use-phpMyAdmin)
|
||||
- [Use pgAdmin](#Use-pgAdmin)
|
||||
- [Use ElasticSearch](#Use-ElasticSearch)
|
||||
- [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)
|
||||
- [Start/Stop xDebug](#Controll-xDebug)
|
||||
- [Production](#Production)
|
||||
- [Prepare LaraDock for Production](#LaraDock-for-Production)
|
||||
- [Setup Laravel and Docker on Digital Ocean](#Digital-Ocean)
|
||||
- [Misc](#Misc)
|
||||
- [Change the timezone](#Change-the-timezone)
|
||||
- [Cron jobs](#CronJobs)
|
||||
- [MySQL access from host](#MySQL-access-from-host)
|
||||
- [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)
|
||||
- [Install Node + YARN](#Install-Yarn)
|
||||
- [Debugging](#debugging)
|
||||
- [Upgrading LaraDock](#upgrading-laradock)
|
||||
- [Help & Questions](#Help)
|
||||
@ -87,7 +102,7 @@ Let's see how easy it is to install `NGINX`, `PHP`, `Composer`, `MySQL` and `Red
|
||||
|
||||
- Easy switch between PHP versions: 7.0, 5.6, 5.5...
|
||||
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
|
||||
- Run your own combination of software's: Memcached, HHVM, Beanstalkd...
|
||||
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
|
||||
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
|
||||
- Easy to customize any container, with simple edit to the `dockerfile`.
|
||||
- All Images extends from an official base Image. (Trusted base Images).
|
||||
@ -101,7 +116,7 @@ Let's see how easy it is to install `NGINX`, `PHP`, `Composer`, `MySQL` and `Red
|
||||
|
||||
|
||||
<a name="Supported-Containers"></a>
|
||||
### Supported Software's (Containers)
|
||||
### Supported Software (Containers)
|
||||
|
||||
- **Database Engines:**
|
||||
- MySQL
|
||||
@ -112,6 +127,7 @@ Let's see how easy it is to install `NGINX`, `PHP`, `Composer`, `MySQL` and `Red
|
||||
- **Cache Engines:**
|
||||
- Redis
|
||||
- Memcached
|
||||
- Aerospike
|
||||
- **PHP Servers:**
|
||||
- NGINX
|
||||
- Apache2
|
||||
@ -121,8 +137,12 @@ Let's see how easy it is to install `NGINX`, `PHP`, `Composer`, `MySQL` and `Red
|
||||
- HHVM
|
||||
- **Message Queueing Systems:**
|
||||
- Beanstalkd (+ Beanstalkd Console)
|
||||
- RabbitMQ (+ RabbitMQ Console)
|
||||
- **Tools:**
|
||||
- Workspace (PHP7-CLI, Composer, Git, Node, Gulp, SQLite, Vim, Nano, cURL...)
|
||||
- PhpMyAdmin
|
||||
- PgAdmin
|
||||
- ElasticSearch
|
||||
|
||||
|
||||
>If you can't find your Software, build it yourself and add it to this list. Contributions are welcomed :)
|
||||
@ -174,8 +194,8 @@ Running a virtual Container is much faster than running a full virtual Machine.
|
||||
|
||||
What's better than a **Demo Video**:
|
||||
|
||||
- LaraDock v4.0 (Coming soon..)
|
||||
- LaraDock [v2.2](https://www.youtube.com/watch?v=-DamFMczwDA)
|
||||
- LaraDock [v4.*](https://www.youtube.com/watch?v=TQii1jDa96Y)
|
||||
- LaraDock [v2.*](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)
|
||||
|
||||
@ -184,8 +204,8 @@ What's better than a **Demo Video**:
|
||||
<a name="Requirements"></a>
|
||||
## Requirements
|
||||
|
||||
- [Git](https://git-scm.com/downloads)
|
||||
- [Docker](https://www.docker.com/products/docker/)
|
||||
- [Git](https://git-scm.com/downloads)
|
||||
- [Docker](https://www.docker.com/products/docker/) `>= 1.12`
|
||||
|
||||
|
||||
|
||||
@ -193,7 +213,7 @@ What's better than a **Demo Video**:
|
||||
## Installation
|
||||
|
||||
|
||||
1 - Clone the `LaraDock` repository:
|
||||
Clone the `LaraDock` repository:
|
||||
|
||||
**A)** If you already have a Laravel project, clone this repository on your `Laravel` root directory:
|
||||
|
||||
@ -202,13 +222,32 @@ git submodule add https://github.com/LaraDock/laradock.git
|
||||
```
|
||||
>If you are not already using Git for your Laravel project, you can use `git clone` instead of `git submodule`.
|
||||
|
||||
Note: In this case the folder structure will be like this (recommended):
|
||||
|
||||
```
|
||||
- project1
|
||||
- laradock
|
||||
- project2
|
||||
- laradock
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
**B)** If you don't have a Laravel project, and you want to install Laravel from Docker, clone this repo anywhere on your machine:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/LaraDock/laradock.git
|
||||
```
|
||||
Note: In this case the folder structure will be like this:
|
||||
|
||||
```
|
||||
- projects
|
||||
- laradock
|
||||
- project1
|
||||
- project2
|
||||
```
|
||||
|
||||
**Note:** if you are using this folder structure don't forget to edit the `docker-compose.yml` file to map to your Laravel directory once you have it (example: `- ../project1/:/var/www/laravel`). "You will need to stop and re-run your docker-compose command for the changes to take place".
|
||||
|
||||
<a name="Usage"></a>
|
||||
## Usage
|
||||
@ -221,13 +260,12 @@ If you are using **Docker Toolbox** (VM), do one of the following:
|
||||
- Upgrade to Docker [Native](https://www.docker.com/products/docker) for Mac/Windows (Recommended). Check out [Upgrading Laradock](#upgrading-laradock)
|
||||
- Use LaraDock v3.* (Visit the `LaraDock-ToolBox` [Branch](https://github.com/LaraDock/laradock/tree/LaraDock-ToolBox)).
|
||||
|
||||
<br>
|
||||
|
||||
If you are using **Docker Native** (For Mac/Windows) or even for Linux, continue this documentation normally since LaraDock v4 and above is just for that.
|
||||
|
||||
|
||||
>**Warning:** If you used an older version of LaraDock it's highly recommended to rebuild the containers you need to use [see how you rebuild a container](#Build-Re-build-Containers) in order to prevent errors as much as possible.
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
1 - Run Containers: *(Make sure you are in the `laradock` folder before running the `docker-compose` commands).*
|
||||
|
||||
|
||||
@ -238,13 +276,14 @@ If you are using **Docker Native** (For Mac/Windows) or even for Linux, continue
|
||||
docker-compose up -d nginx mysql
|
||||
```
|
||||
|
||||
**Note**: The `workspace` and `php-fpm` will run automatically in most of the cases, so no need to specify them in the `up` command. If you couldn't find them running then you need specify them as follow: `docker-compose up -d nginx php-fpm mysql workspace`.
|
||||
|
||||
|
||||
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`, `pgadmin`, `elasticsearch`.
|
||||
|
||||
|
||||
**Note**: `workspace` and `php-fpm` will run automatically in most of the cases, so no need to specify them in the `up` command.
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
@ -253,8 +292,13 @@ You can select your own combination of Containers form the list below:
|
||||
```bash
|
||||
docker-compose exec workspace bash
|
||||
```
|
||||
<br />
|
||||
Add `--user=laradock` (example `docker-compose exec --user=laradock workspace bash`) to have files created as your host's user. (you can change the PUID (User id) and PGID (group id) variables from the `docker-compose.yml`).
|
||||
Alternatively, for Windows Powershell users: execute the following command to enter any running container:
|
||||
|
||||
```bash
|
||||
docker exec -it {workspace-container-id} bash
|
||||
```
|
||||
|
||||
**Note:** You can add `--user=laradock` (example `docker-compose exec --user=laradock workspace bash`) to have files created as your host's user. (you can change the PUID (User id) and PGID (group id) variables from the `docker-compose.yml`).
|
||||
|
||||
|
||||
|
||||
@ -290,7 +334,7 @@ If you need a special support. Contact me, more details in the [Help & Questions
|
||||
|
||||
|
||||
<a name="Docker"></a>
|
||||
### [Docker]
|
||||
|
||||
|
||||
|
||||
|
||||
@ -378,15 +422,17 @@ Examples:
|
||||
Change MySQL Database Name:
|
||||
|
||||
```yml
|
||||
environment:
|
||||
MYSQL_DATABASE: laradock
|
||||
environment:
|
||||
MYSQL_DATABASE: laradock
|
||||
...
|
||||
```
|
||||
|
||||
Change Redis defaut port to 1111:
|
||||
|
||||
```yml
|
||||
ports:
|
||||
- "1111:6379"
|
||||
ports:
|
||||
- "1111:6379"
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
@ -443,7 +489,7 @@ You might use the `--no-cache` option if you want full rebuilding (`docker-compo
|
||||
|
||||
<br>
|
||||
<a name="Add-Docker-Images"></a>
|
||||
### Add more Software's (Docker Images)
|
||||
### Add more Software (Docker Images)
|
||||
|
||||
To add an image (software), just edit the `docker-compose.yml` and add your container details, to do so you need to be familiar with the [docker compose file syntax](https://docs.docker.com/compose/compose-file/).
|
||||
|
||||
@ -472,7 +518,6 @@ docker logs {container-name}
|
||||
|
||||
<br>
|
||||
<a name="Laravel"></a>
|
||||
### [Laravel]
|
||||
|
||||
|
||||
|
||||
@ -490,7 +535,7 @@ Example using Composer
|
||||
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).
|
||||
|
||||
@ -506,6 +551,7 @@ Since the new Laravel application is in the `my-cool-app` folder, we need to rep
|
||||
build: ./application
|
||||
volumes:
|
||||
- ../my-cool-app/:/var/www/laravel
|
||||
...
|
||||
```
|
||||
4 - Go to that folder and start working..
|
||||
|
||||
@ -699,9 +745,51 @@ 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>
|
||||
<a name="Use-pgAdmin"></a>
|
||||
### Use pgAdmin
|
||||
|
||||
1 - Run the pgAdmin Container (`pgadmin`) with the `docker-compose up` command. Example:
|
||||
|
||||
```bash
|
||||
docker-compose up -d postgres pgadmin
|
||||
```
|
||||
|
||||
2 - Open your browser and visit the localhost on port **5050**: `http://localhost:5050`
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-ElasticSearch"></a>
|
||||
### Use ElasticSearch
|
||||
|
||||
1 - Run the ElasticSearch Container (`elasticsearch`) with the `docker-compose up` command. Example:
|
||||
|
||||
```bash
|
||||
docker-compose up -d elasticsearch
|
||||
```
|
||||
|
||||
2 - Open your browser and visit the localhost on port **9200**: `http://localhost:9200`
|
||||
|
||||
|
||||
<br>
|
||||
<a name="PHP"></a>
|
||||
### [PHP]
|
||||
|
||||
|
||||
|
||||
@ -740,11 +828,12 @@ By default **PHP-FPM 7.0** is running.
|
||||
|
||||
3 - Change the version number, by replacing `Dockerfile-70` with `Dockerfile-56`, like this:
|
||||
|
||||
```txt
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
dockerfile: Dockerfile-70
|
||||
```yml
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
dockerfile: Dockerfile-70
|
||||
...
|
||||
```
|
||||
|
||||
4 - Finally rebuild the container
|
||||
@ -832,14 +921,118 @@ It should be like this:
|
||||
|
||||
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||
|
||||
3 - Open `laradock/workspace/xdebug.ini` and/or `laradock/php-fpm/xdebug.ini` and enable at least the following configs:
|
||||
|
||||
```
|
||||
xdebug.remote_autostart=1
|
||||
xdebug.remote_enable=1
|
||||
xdebug.remote_connect_back=1
|
||||
```
|
||||
|
||||
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="LaraDock-for-Production"></a>
|
||||
### Prepare LaraDock for Production
|
||||
|
||||
It's recommended for production to create a custom `docker-compose.yml` file. For that reason LaraDock is shipped with `production-docker-compose.yml` which should contain only the containers you are planning to run on production (usage exampe: `docker-compose -f production-docker-compose.yml up -d nginx mysql redis ...`).
|
||||
|
||||
Note: The Database (MySQL/MariaDB/...) ports should not be forwarded on production, because Docker will automatically publish the port on the host, which is quite insecure, unless specifically told not to. So make sure to remove these lines:
|
||||
|
||||
```
|
||||
ports:
|
||||
- "3306:3306"
|
||||
```
|
||||
|
||||
To learn more about how Docker publishes ports, please read [this excellent post on the subject](https://fralef.me/docker-and-iptables.html).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Digital-Ocean"></a>
|
||||
### Setup Laravel and Docker on Digital Ocean
|
||||
|
||||
####[Full Guide Here](https://github.com/LaraDock/laradock/blob/master/_guides/digital_ocean.md)
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Misc"></a>
|
||||
### [Misc]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
<a name="Change-the-timezone"></a>
|
||||
### Change the timezone
|
||||
|
||||
To change the timezone for the `workspace` container, modify the `TZ` build argument in the Docker Compose file to one in the [TZ database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
|
||||
|
||||
For example, if I want the timezone to be `New York`:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- TZ=America/New_York
|
||||
...
|
||||
```
|
||||
|
||||
We also recommend [setting the timezone in Laravel](http://www.camroncade.com/managing-timezones-with-laravel/).
|
||||
|
||||
<a name="CronJobs"></a>
|
||||
### Adding cron jobs
|
||||
|
||||
You can add your cron jobs to `workspace/crontab/root` after the `php artisan` line.
|
||||
|
||||
```
|
||||
* * * * * php /var/www/laravel/artisan schedule:run >> /dev/null 2>&1
|
||||
|
||||
# Custom cron
|
||||
* * * * * root echo "Every Minute" > /var/log/cron.log 2>&1
|
||||
```
|
||||
|
||||
Make sure you [change the timezone](#Change-the-timezone) if you don't want to use the default (UTC).
|
||||
|
||||
<a name="MySQL-access-from-host"></a>
|
||||
### MySQL access from host
|
||||
|
||||
You can forward the MySQL/MariaDB port to your host by making sure these lines are added to the `mysql` or `mariadb` section of the `docker-compose.yml` or in your [environment specific Compose](https://docs.docker.com/compose/extends/) file.
|
||||
|
||||
```
|
||||
ports:
|
||||
- "3306:3306"
|
||||
```
|
||||
|
||||
<a name="Use-custom-Domain"></a>
|
||||
### Use custom Domain (instead of the Docker IP)
|
||||
|
||||
@ -933,7 +1126,64 @@ It should be like this:
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
<br>
|
||||
<a name="Install-Yarn"></a>
|
||||
### Install Node + YARN
|
||||
|
||||
Yarn is a new package manager for JavaScript. It is so faster than npm, which you can find [here](http://yarnpkg.com/en/compare).To install NodeJS and [Yarn](https://yarnpkg.com/) in the Workspace container:
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
|
||||
2 - Search for the `INSTALL_NODE` and `INSTALL_YARN` argument under the Workspace Container and set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_NODE=true
|
||||
- INSTALL_YARN=true
|
||||
...
|
||||
```
|
||||
|
||||
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>
|
||||
<a name="debugging"></a>
|
||||
@ -941,6 +1191,8 @@ It should be like this:
|
||||
|
||||
*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!
|
||||
|
||||
Run the following command from the Laravel root directory:
|
||||
@ -949,16 +1201,29 @@ Run the following command from the Laravel root directory:
|
||||
sudo chmod -R 777 storage bootstrap/cache
|
||||
```
|
||||
|
||||
|
||||
#### I see "Welcome to nginx" instead of the Laravel App!
|
||||
|
||||
Use `http://127.0.0.1` instead of `http://localhost` in your browser.
|
||||
|
||||
|
||||
|
||||
#### 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.
|
||||
|
||||
|
||||
|
||||
#### 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>
|
||||
<a name="upgrading-laradock"></a>
|
||||
@ -987,7 +1252,10 @@ 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 :)
|
||||
|
||||
#### 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>
|
||||
## Help & Questions
|
||||
@ -998,32 +1266,44 @@ You can as well can open an [issue](https://github.com/laradock/laradock/issues)
|
||||
|
||||
For special help with Docker and/or Laravel, you can schedule a live call with the creator of this project at [Codementor.io](https://www.codementor.io/mahmoudz).
|
||||
|
||||
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
**Creator:**
|
||||
|
||||
- [Mahmoud Zalt](https://github.com/Mahmoudz) (Twitter [@Mahmoud_Zalt](https://twitter.com/Mahmoud_Zalt))
|
||||
- [Mahmoud Zalt](https://github.com/Mahmoudz) [ [Twitter](https://twitter.com/Mahmoud_Zalt) | [Personal Site](http://zalt.me) | [Linkedin](https://www.linkedin.com/in/mahmoudzalt) ]
|
||||
|
||||
**Admins:**
|
||||
|
||||
- [Bo-Yi Wu](https://github.com/appleboy) (appleboy)
|
||||
- [Philippe Trépanier](https://github.com/philtrep) (philtrep)
|
||||
|
||||
**Main Contributors:**
|
||||
|
||||
- [Suteepat (tianissimo)](https://github.com/tianissimo)
|
||||
- [David (davidavz)](https://github.com/davidavz)
|
||||
- [Francis Lavoie](https://github.com/francislavoie) (francislavoie)
|
||||
- [luciano-jr](https://github.com/luciano-jr)
|
||||
- [Zhqagp](https://github.com/zhqagp)
|
||||
- [Tim B.](https://github.com/tjb328) (tjb328)
|
||||
- [MidasCodeBreaker](https://github.com/midascodebreaker)
|
||||
- [Larry Eitel](https://github.com/LarryEitel)
|
||||
- [Suteepat](https://github.com/tianissimo) (tianissimo)
|
||||
- [David](https://github.com/davidavz) (davidavz)
|
||||
- [Lialosiu](https://github.com/lialosiu)
|
||||
- [Eric Pfeiffer (computerfr33k)](https://github.com/computerfr33k)
|
||||
- [Eric Pfeiffer](https://github.com/computerfr33k) (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)
|
||||
- [Jack Fletcher](https://github.com/Kauhat) (Kauhat)
|
||||
- [Amin Mkh](https://github.com/AminMkh)
|
||||
- [Matthew Tonkin Dunn](https://github.com/mattythebatty) (mattythebatty)
|
||||
- [Zhivitsa Kirill](https://github.com/zhikiri) (zhikiri)
|
||||
- [Benmag](https://github.com/benmag)
|
||||
|
||||
**Awesome People:**
|
||||
**Other Contributors & Supporters:**
|
||||
|
||||
- [Contributors](https://github.com/LaraDock/laradock/graphs/contributors)
|
||||
- [Supporters](https://github.com/LaraDock/laradock/issues?utf8=%E2%9C%93&q=)
|
||||
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE) (MIT)
|
||||
|
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 /
|
||||
to /index.php?{query}
|
||||
}
|
||||
gzip
|
||||
browse
|
||||
log stdout
|
||||
errors stderr
|
||||
log /var/log/caddy/access.log
|
||||
errors /var/log/caddy/error.log
|
||||
# Uncomment to enable TLS (HTTPS)
|
||||
# Change the first list to listen on port 443 when enabling TLS
|
||||
#tls self_signed
|
||||
|
@ -2,7 +2,9 @@ FROM alpine:3.4
|
||||
|
||||
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 \
|
||||
&& apk upgrade \
|
||||
@ -10,16 +12,13 @@ RUN apk update \
|
||||
|
||||
RUN curl --silent --show-error --fail --location \
|
||||
--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 \
|
||||
&& mv /usr/bin/caddy_linux_amd64 /usr/bin/caddy \
|
||||
&& chmod 0755 /usr/bin/caddy \
|
||||
&& /usr/bin/caddy -version
|
||||
&& chmod 0755 /usr/bin/caddy
|
||||
|
||||
EXPOSE 80 443 2015
|
||||
|
||||
WORKDIR /var/www/laravel/public
|
||||
|
||||
ENTRYPOINT ["caddy"]
|
||||
|
||||
CMD ["-conf", "/etc/Caddyfile"]
|
||||
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"]
|
||||
|
@ -8,14 +8,25 @@ services:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_MONGO=false
|
||||
- INSTALL_XDEBUG=false
|
||||
- INSTALL_MONGO=false
|
||||
- INSTALL_NODE=false
|
||||
- INSTALL_YARN=false
|
||||
- INSTALL_DRUSH=false
|
||||
- INSTALL_AEROSPIKE_EXTENSION=false
|
||||
- COMPOSER_GLOBAL_INSTALL=false
|
||||
- INSTALL_WORKSPACE_SSH=false
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- NODE_VERSION=stable
|
||||
- TZ=UTC
|
||||
volumes_from:
|
||||
- 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
|
||||
|
||||
### PHP-FPM Container #######################################
|
||||
@ -24,9 +35,12 @@ services:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_MONGO=false
|
||||
- INSTALL_XDEBUG=false
|
||||
- INSTALL_MONGO=false
|
||||
- INSTALL_ZIP_ARCHIVE=false
|
||||
- INSTALL_MEMCACHED=false
|
||||
- INSTALL_OPCACHE=false
|
||||
- INSTALL_AEROSPIKE_EXTENSION=false
|
||||
dockerfile: Dockerfile-70
|
||||
volumes_from:
|
||||
- volumes_source
|
||||
@ -34,6 +48,12 @@ services:
|
||||
- "9000"
|
||||
links:
|
||||
- workspace
|
||||
extra_hosts:
|
||||
# IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts)
|
||||
- "dockerhost:10.0.75.1"
|
||||
environment:
|
||||
# IMPORTANT: Set the Remote Interpreter entry matching name to `laravel`
|
||||
- PHP_IDE_CONFIG="serverName=laravel"
|
||||
|
||||
### Nginx Server Container ##################################
|
||||
|
||||
@ -94,19 +114,6 @@ services:
|
||||
MYSQL_PASSWORD: secret
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
|
||||
### PostgreSQL Container ####################################
|
||||
|
||||
postgres:
|
||||
build: ./postgres
|
||||
volumes_from:
|
||||
- volumes_data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
environment:
|
||||
POSTGRES_DB: homestead
|
||||
POSTGRES_USER: homestead
|
||||
POSTGRES_PASSWORD: secret
|
||||
|
||||
### MariaDB Container #######################################
|
||||
|
||||
mariadb:
|
||||
@ -121,6 +128,19 @@ services:
|
||||
MYSQL_PASSWORD: secret
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
|
||||
### PostgreSQL Container ####################################
|
||||
|
||||
postgres:
|
||||
build: ./postgres
|
||||
volumes_from:
|
||||
- volumes_data
|
||||
ports:
|
||||
- "5432:5432"
|
||||
environment:
|
||||
POSTGRES_DB: homestead
|
||||
POSTGRES_USER: homestead
|
||||
POSTGRES_PASSWORD: secret
|
||||
|
||||
### Neo4j Container #########################################
|
||||
|
||||
neo4j:
|
||||
@ -151,6 +171,20 @@ services:
|
||||
ports:
|
||||
- "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:
|
||||
@ -172,6 +206,21 @@ services:
|
||||
links:
|
||||
- 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:
|
||||
@ -187,33 +236,78 @@ services:
|
||||
build: ./caddy
|
||||
volumes_from:
|
||||
- volumes_source
|
||||
- volumes_data
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
- "2015:2015"
|
||||
volumes:
|
||||
- ./caddy/Caddyfile:/etc/Caddyfile
|
||||
- ./logs/caddy:/var/log/caddy
|
||||
links:
|
||||
- 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"
|
||||
|
||||
### pgAdmin Container ##################################
|
||||
|
||||
pgadmin:
|
||||
build: ./pgadmin
|
||||
ports:
|
||||
- "5050:5050"
|
||||
links:
|
||||
- postgres
|
||||
|
||||
### ElasticSearch Container ##################################
|
||||
|
||||
elasticsearch:
|
||||
build: ./elasticsearch
|
||||
volumes_from:
|
||||
- volumes_data
|
||||
ports:
|
||||
- "9200:9200"
|
||||
- "9300:9300"
|
||||
links:
|
||||
- php-fpm
|
||||
|
||||
### Laravel Application Code Container ######################
|
||||
|
||||
volumes_source:
|
||||
build: ./volumes/application
|
||||
image: tianon/true
|
||||
volumes:
|
||||
- ../:/var/www/laravel
|
||||
|
||||
### Databases Data Container ################################
|
||||
|
||||
volumes_data:
|
||||
build: ./volumes/data
|
||||
image: tianon/true
|
||||
volumes:
|
||||
- ./data/mysql:/var/lib/mysql
|
||||
- ./data/postgres:/var/lib/postgres
|
||||
- ./data/mariadb:/var/lib/mariadb
|
||||
- ./data/postgres:/var/lib/postgresql/data
|
||||
- ./data/memcached:/var/lib/memcached
|
||||
- ./data/redis:/data
|
||||
- ./data/neo4j:/var/lib/neo4j/data
|
||||
- ./data/mongo:/data/db
|
||||
- ./data/aerospike:/opt/aerospike/data
|
||||
- ./data/sessions:/sessions
|
||||
- ./data/caddy:/root/.caddy
|
||||
- ./data/elasticsearch/data:/usr/share/elasticsearch/data
|
||||
|
||||
### Add more Containers below ###############################
|
||||
|
5
elasticsearch/Dockerfile
Normal file
5
elasticsearch/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
FROM elasticsearch:latest
|
||||
|
||||
MAINTAINER Bo-Yi Wu <appleboy.tw@gmail.com>
|
||||
|
||||
EXPOSE 9200 9300
|
@ -2,6 +2,8 @@ FROM mysql:latest
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
ADD my.cnf /etc/mysql/conf.d/my.cnf
|
||||
|
||||
CMD ["mysqld"]
|
||||
|
||||
EXPOSE 3306
|
||||
|
6
mysql/my.cnf
Normal file
6
mysql/my.cnf
Normal file
@ -0,0 +1,6 @@
|
||||
# The MySQL Client configuration file.
|
||||
#
|
||||
# For explanations see
|
||||
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
|
||||
|
||||
[mysql]
|
@ -3,7 +3,7 @@ FROM nginx:alpine
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
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
|
||||
|
||||
|
@ -24,5 +24,6 @@ http {
|
||||
gzip on;
|
||||
gzip_disable "msie6";
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
include /etc/nginx/sites-available/*;
|
||||
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 {
|
||||
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server ipv6only=on;
|
||||
|
||||
server_name laravel;
|
||||
root /var/www/laravel/public;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
5
pgadmin/Dockerfile
Normal file
5
pgadmin/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
FROM fenglc/pgadmin4
|
||||
|
||||
MAINTAINER Bo-Yi Wu <appleboy.tw@gmail.com>
|
||||
|
||||
EXPOSE 5050
|
@ -10,7 +10,7 @@
|
||||
# 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>
|
||||
|
||||
@ -32,46 +32,90 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
#
|
||||
# - INSTALL_XDEBUG= false
|
||||
# - INSTALL_MONGO= false
|
||||
# - INSTALL_ZIP_ARCHIVE= false
|
||||
# Example:
|
||||
# - INSTALL_ZIP_ARCHIVE=true
|
||||
#
|
||||
|
||||
#####################################
|
||||
# xDebug:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_XDEBUG=true
|
||||
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
||||
ARG INSTALL_XDEBUG=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Install the xdebug extention
|
||||
# Install the xdebug extension
|
||||
pecl install xdebug && \
|
||||
docker-php-ext-enable xdebug \
|
||||
;fi
|
||||
|
||||
# Copy xdebug configration for remote debugging
|
||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
#####################################
|
||||
# MongoDB:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MONGO=true
|
||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
||||
ARG INSTALL_MONGO=false
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extention
|
||||
pecl install mongodb \
|
||||
# Install the mongodb extension
|
||||
pecl install mongodb && \
|
||||
docker-php-ext-enable mongodb \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# ZipArchive:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_ZIP_ARCHIVE=true
|
||||
ENV INSTALL_ZIP_ARCHIVE ${INSTALL_ZIP_ARCHIVE}
|
||||
ARG INSTALL_ZIP_ARCHIVE=false
|
||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||
# Install the zip extention
|
||||
pecl install zip \
|
||||
# Install the zip extension
|
||||
pecl install zip && \
|
||||
docker-php-ext-enable zip \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Memcached:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MEMCACHED=false
|
||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||
# Install the php memcached extension
|
||||
pecl install memcached && \
|
||||
docker-php-ext-enable memcached \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Aerospike:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_AEROSPIKE_EXTENSION=false
|
||||
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=false
|
||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||
docker-php-ext-install opcache && \
|
||||
docker-php-ext-enable opcache \
|
||||
;fi
|
||||
|
||||
# Copy opcache configration
|
||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
|
@ -10,7 +10,7 @@
|
||||
# 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>
|
||||
|
||||
@ -32,46 +32,103 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
#
|
||||
# - INSTALL_XDEBUG= false
|
||||
# - INSTALL_MONGO= false
|
||||
# - INSTALL_ZIP_ARCHIVE= false
|
||||
# Example:
|
||||
# - INSTALL_ZIP_ARCHIVE=true
|
||||
# - ...
|
||||
#
|
||||
|
||||
#####################################
|
||||
# xDebug:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_XDEBUG=true
|
||||
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
||||
ARG INSTALL_XDEBUG=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Install the xdebug extention
|
||||
# Install the xdebug extension
|
||||
pecl install xdebug && \
|
||||
docker-php-ext-enable xdebug \
|
||||
;fi
|
||||
|
||||
# Copy xdebug configration for remote debugging
|
||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
#####################################
|
||||
# MongoDB:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MONGO=true
|
||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
||||
ARG INSTALL_MONGO=false
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extention
|
||||
pecl install mongodb \
|
||||
# Install the mongodb extension
|
||||
pecl install mongodb && \
|
||||
docker-php-ext-enable mongodb \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# ZipArchive:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_ZIP_ARCHIVE=true
|
||||
ENV INSTALL_ZIP_ARCHIVE ${INSTALL_ZIP_ARCHIVE}
|
||||
ARG INSTALL_ZIP_ARCHIVE=false
|
||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||
# Install the zip extention
|
||||
pecl install zip \
|
||||
# Install the zip extension
|
||||
pecl install zip && \
|
||||
docker-php-ext-enable zip \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Memcached:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MEMCACHED=false
|
||||
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=false
|
||||
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=false
|
||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||
docker-php-ext-install opcache && \
|
||||
docker-php-ext-enable opcache \
|
||||
;fi
|
||||
|
||||
# Copy opcache configration
|
||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
||||
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
|
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,8 +1,6 @@
|
||||
date.timezone=UTC
|
||||
display_errors=Off
|
||||
log_errors=On
|
||||
extension=mongodb.so
|
||||
extension=zip.so
|
||||
|
||||
; Maximum amount of memory a script may consume (128MB)
|
||||
; http://php.net/memory-limit
|
||||
|
7
php-fpm/opcache.ini
Normal file
7
php-fpm/opcache.ini
Normal file
@ -0,0 +1,7 @@
|
||||
extension=opcache.so
|
||||
opcache.enable="1"
|
||||
opcache.memory_consumption="256"
|
||||
opcache.use_cwd="0"
|
||||
opcache.fast_shutdown="1"
|
||||
opcache.max_file_size="0"
|
||||
opcache.validate_timestamps="0"
|
13
php-fpm/xdebug.ini
Normal file
13
php-fpm/xdebug.ini
Normal file
@ -0,0 +1,13 @@
|
||||
; 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=0
|
||||
xdebug.remote_enable=0
|
||||
xdebug.remote_connect_back=0
|
||||
xdebug.cli_color=0
|
||||
xdebug.profiler_enable=0
|
||||
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
|
62
production-docker-compose.yml
Normal file
62
production-docker-compose.yml
Normal file
@ -0,0 +1,62 @@
|
||||
version: '2'
|
||||
|
||||
services:
|
||||
|
||||
### Workspace Utilities Container ###########################
|
||||
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_XDEBUG=false
|
||||
- INSTALL_MONGO=false
|
||||
- INSTALL_NODE=false
|
||||
- INSTALL_YARN=false
|
||||
- INSTALL_DRUSH=false
|
||||
- INSTALL_AEROSPIKE_EXTENSION=false
|
||||
- COMPOSER_GLOBAL_INSTALL=false
|
||||
- INSTALL_WORKSPACE_SSH=false
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- NODE_VERSION=stable
|
||||
volumes_from:
|
||||
- volumes_source
|
||||
ports:
|
||||
- "22:22"
|
||||
tty: true
|
||||
|
||||
### PHP-FPM Container #######################################
|
||||
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_XDEBUG=false
|
||||
- INSTALL_MONGO=false
|
||||
- INSTALL_ZIP_ARCHIVE=false
|
||||
- INSTALL_MEMCACHED=false
|
||||
- INSTALL_OPCACHE=false
|
||||
- INSTALL_AEROSPIKE_EXTENSION=false
|
||||
dockerfile: Dockerfile-70
|
||||
volumes_from:
|
||||
- volumes_source
|
||||
expose:
|
||||
- "9000"
|
||||
links:
|
||||
- workspace
|
||||
|
||||
### Laravel Application Code Container ######################
|
||||
|
||||
volumes_source:
|
||||
image: tianon/true
|
||||
volumes:
|
||||
- ../:/var/www/laravel
|
||||
|
||||
### Databases Data Container ################################
|
||||
|
||||
volumes_data:
|
||||
image: tianon/true
|
||||
volumes:
|
||||
# - ./data/mysql:/var/lib/mysql
|
||||
|
||||
### Add All your Software Containers below ###############################
|
5
rabbitmq/Dockerfile
Normal file
5
rabbitmq/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
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"]
|
@ -32,39 +32,10 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - INSTALL_NODE=false
|
||||
# - ...
|
||||
#
|
||||
# - INSTALL_XDEBUG= false
|
||||
# - INSTALL_MONGO= false
|
||||
# - COMPOSER_GLOBAL_INSTALL= false
|
||||
# - INSTALL_NODE= false
|
||||
#
|
||||
|
||||
#####################################
|
||||
# xDebug:
|
||||
#####################################
|
||||
|
||||
# Check if xDebug needs to be installed
|
||||
ARG INSTALL_XDEBUG=true
|
||||
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y --force-yes php7.0-xdebug && \
|
||||
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 \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# MongoDB:
|
||||
#####################################
|
||||
|
||||
# Check if Mongo needs to be installed
|
||||
ARG INSTALL_MONGO=true
|
||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
pecl install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Non-Root User:
|
||||
@ -75,6 +46,14 @@ ARG PUID=1000
|
||||
ARG PGID=1000
|
||||
RUN groupadd -g $PGID laradock && \
|
||||
useradd -u $PUID -g laradock -m laradock
|
||||
|
||||
#####################################
|
||||
# Set Timezone
|
||||
#####################################
|
||||
|
||||
ARG TZ=UTC
|
||||
ENV TZ ${TZ}
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
#####################################
|
||||
# Composer:
|
||||
@ -88,29 +67,101 @@ RUN chown -R laradock:laradock /home/laradock/.composer
|
||||
USER laradock
|
||||
|
||||
# Check if global install need to be ran
|
||||
ARG COMPOSER_GLOBAL_INSTALL=true
|
||||
ARG COMPOSER_GLOBAL_INSTALL=false
|
||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
||||
# run the install
|
||||
composer global install \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Crontab
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
COPY ./crontab /var/spool/cron/crontabs
|
||||
|
||||
#####################################
|
||||
# xDebug:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get update && \
|
||||
apt-get install -y --force-yes php7.0-xdebug && \
|
||||
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 \
|
||||
;fi
|
||||
# ADD for REMOTE debugging
|
||||
COPY ./xdebug.ini /etc/php/7.0/cli/conf.d/xdebug.ini
|
||||
|
||||
#####################################
|
||||
# ssh:
|
||||
#####################################
|
||||
ARG INSTALL_WORKSPACE_SSH=false
|
||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
||||
|
||||
ADD insecure_id_rsa /tmp/id_rsa
|
||||
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
|
||||
|
||||
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:
|
||||
#####################################
|
||||
|
||||
# Check if Mongo needs to be installed
|
||||
ARG INSTALL_MONGO=false
|
||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
pecl install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Drush:
|
||||
#####################################
|
||||
USER root
|
||||
ENV DRUSH_VERSION 8.1.2
|
||||
ARG INSTALL_DRUSH=false
|
||||
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:
|
||||
#####################################
|
||||
|
||||
# Check if NVM needs to be installed
|
||||
ARG INSTALL_NODE=true
|
||||
ARG NODE_VERSION=stable
|
||||
ENV NODE_VERSION ${NODE_VERSION}
|
||||
ARG INSTALL_NODE=false
|
||||
ENV INSTALL_NODE ${INSTALL_NODE}
|
||||
ENV NVM_DIR /home/laradock/.nvm
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
# Install nvm (A Node Version Manager)
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash && \
|
||||
. ~/.nvm/nvm.sh && \
|
||||
nvm install stable && \
|
||||
nvm use stable && \
|
||||
nvm alias stable && \
|
||||
npm install -g gulp bower \
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.6/install.sh | bash && \
|
||||
. $NVM_DIR/nvm.sh && \
|
||||
nvm install ${NODE_VERSION} && \
|
||||
nvm use ${NODE_VERSION} && \
|
||||
nvm alias ${NODE_VERSION} && \
|
||||
npm install -g gulp bower vue-cli \
|
||||
;fi
|
||||
|
||||
# Wouldn't execute when added to the RUN statement in the above block
|
||||
@ -121,6 +172,68 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# Add NVM binaries to root's .bashrc
|
||||
USER root
|
||||
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# YARN:
|
||||
#####################################
|
||||
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_YARN=false
|
||||
ENV INSTALL_YARN ${INSTALL_YARN}
|
||||
|
||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
||||
curl -o- -L https://yarnpkg.com/install.sh | bash && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# Add YARN binaries to root's .bashrc
|
||||
USER root
|
||||
|
||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
|
||||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
||||
;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
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE_EXTENSION} = false ]; then \
|
||||
rm /etc/php/7.0/cli/conf.d/aerospike.ini \
|
||||
;fi
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# 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
|
1
workspace/crontab/root
Normal file
1
workspace/crontab/root
Normal file
@ -0,0 +1 @@
|
||||
* * * * * php /var/www/laravel/artisan schedule:run >> /dev/null 2>&1
|
51
workspace/insecure_id_rsa
Normal file
51
workspace/insecure_id_rsa
Normal file
@ -0,0 +1,51 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIJKQIBAAKCAgEA9LX0DVV8VY0k+d58v+Tqe6LfhniBhBgBJ6/ZIGAFyuhqpyf9
|
||||
1Dn1ihcZeIBLrC4+IaRq0/xiVcdpyBu3fyGkYnyb57Pi2pOFo/te88j0ReeP5onO
|
||||
mtDAERCR+Wkzi7kivg4Z4U1KgLeJn3R6WJgV1nUwFwwoPID+UC3RpHcS/TPhgZOL
|
||||
Sog8dYUXx1fbmOnItJbKUK4Zz883li5LUwPLlmGZbrNYL90l1+s1Q9vlwevye2Wq
|
||||
zXCvYh6DC3XRYIEnZxrOpDSyUHtAwMJ3HXgkIs3HV1dgPTt972mP29ANaG1MbqAo
|
||||
retvQMMkPQv+9X96wUq34FEm9aTlT5oS0SQ2Xp3/zUvBSFtfeP7ubJb69bun4/4o
|
||||
gmHLbdDzYNNFAJ5cm1gwyg95eXvCm5derk8Nf+QBHOlpd2gprVmKcERnrnv4Z1Mz
|
||||
l6/f0o4UC3wfmQgErfNzfrtJFe54uxuf9OM9dXamcJJOsdUgM1hiZ6e+qYsHeAD9
|
||||
n7vCqjQJlrMhCGZpkeSUhkuYuLBrkhqIOq2VqKdS8CHzY3TixW7Pq5xdKDpqYGUX
|
||||
qPHx/j5jpKt4h2j0L1ztwo9nedh1cbRyPp9oiow7twsxyD99b36rGSh35qKN3JBV
|
||||
uMn6z3F8tIELMD49IyVCGyi2+jn7qbVLEOUr5IsFqFuIq5zt5ShfSi6N7e8CAwEA
|
||||
AQKCAgA1t2M1Mhiy5uLA/re/n85hCWWrrPQxPNu0DIPK+YkL+2y9+KddWMOvZlau
|
||||
/uqdhyEYXXEdy38CeV2dEYh8HbRp8hR/Dhu0A0IItvsm5GvKlIQgBQwXK8+db1e7
|
||||
uf4Yo7EeqxW/QSojiyZonDbnD6trghnmVULX1TD+BLDKO2Ett5++w9aFq9YpreeE
|
||||
WKLZtCfcjGUoxK7h0QjQrKTYOjMMdawqgq/PAep2tSjiFnke0l5N/Ak8Q4ocLbpy
|
||||
X5BwcKlnlpjZrr+drxCNv6JKE79K7ITfhUyY5GBGl5N+mvL2g1eNyRZk5xNq0es4
|
||||
g1OaLDuUBoTKdsXokiPMD3Ql+J7+RCoC9PuGutdCAIU2u9CoFAfKJpsKh+sGRyri
|
||||
zvD5hlS31F78zif7W5ubi9supA6etJYbK+mwcDsJgmtc+q51xsH3T1ODvRcbtzvY
|
||||
FE8JzuchN4aPtsY+W/waTDVDdymFvPSsYjX7Blq3fnpg2uJKtzWEIQE+rY7gC3rN
|
||||
oNSE4YFbIAjTM4kIuIFnkVq3o2BmQ7WHjb3USelhFxBPJ67nBMLS3ShXLjyiu22U
|
||||
8RxKcbOKpEimuCKRSVEdpsNnps3h2y8c2PPWWS7LGzAiCepLjXwqHLe4L/cvx8S9
|
||||
KZRXQneakkKToguV7N9p0O9prjJckb4jo941iaDepVZIHbuP8QKCAQEA+vABCKnn
|
||||
8PA4RWixPcIybj6iQpHPzt6uZxv3il3IoY3Anm2+EHbloE9VcH3phQEAoTQsxd+k
|
||||
octHHqdJi6YxOTmmsHl3jilA3kKg0A7Rin702DObC3c9VSOe7V9rizPQnFewkyDP
|
||||
mpOoW3by0DYv0DFtA8zNfgSkFeqZEoBnQyMom9lBYcJ9VKriUfdCvPgh3ZV/SzEf
|
||||
cp6ZtMLRvtEWzOx75cww6kLvUuUekQl/7Ubr36Oz+71B66VN59udSLYPAb+stzhb
|
||||
QSU7LbNKaLlygBREqnTeXj+VCXGnrxORZS1FfqO9unbxg/FYBDBMt/2jXt6Elz62
|
||||
YgjDEtGjcTA/rQKCAQEA+aXKW6zufDG88DPsX5psl7Cu2Fwhq1j5ULGvpkuucaVs
|
||||
snONmFqi4jH7LEZVjEcHg6GhDqGytaaUr1KhXVWttn0om2qZIKFg7BR7E5PR9HKu
|
||||
Ig0do68pPf/5MKT6TKq1gB1l8B481dVc8tmaHjHbLz9UlIf8uLbXfP1EYyADAqJ4
|
||||
xtQNtOj7uz0k5ayIgWU6scGC3ElLTzfWusXPJyWFNV5wAtCI0Xu4U/IdNO0rLiBI
|
||||
8BSC8VC4Maw/a1ZY1nliXBfjmtJ3i7A2s36+YG11vXmi2BKFXa80BM7+L9zptxf2
|
||||
Pv7H1Yvyx4bfVZ2xCTLCyjtUj4wGGkmHMTC8M0gniwKCAQBYzQYQos/Jm7jOFzZh
|
||||
vI9MJC4XkLIRawwcwPDgrj+JrDg12HAiM3EfQfPiUyyIPMqUQXp2q6X++4i3eEu2
|
||||
d6GDtrseSF3emQqznLB78EKG2FadC+YaMKAruOdM6S+Nm1B/gyihaEMPWKGDfJyA
|
||||
wiw5aMRDS/6MUegfOV3iBj6Eq7R7Mm7IwaLIi5B7oRyk8spJN9ZMLZ4LWcTbCvZe
|
||||
qG+BJU7TC2dj/zviAeLHQK1csnRWOABBXcAuO9lN65HFYWf+Hm5oiDEC5MIEciYq
|
||||
2TWDzahfCeyHPcjoBqhodGxHebXWEuvZSK4/GvEiylTb544gzG3vd+ni12bxCe7k
|
||||
50YhAoIBAQCgG2r3dqYQspl49+P9wH0qn97S1eumB88FqJ99KIZ9Tlmy7Rb/ggl6
|
||||
xhFPaOBOsfMowY0YZC3IAEjVVEo3IM7i/cwAONJyMe2GGvCAMspxWudA4WaD5r+t
|
||||
irAXOYdpigYTX0dUQyBDB66v9Uy5VsI6wAQPqlMzZ9g1yfyFEi+8DdUltzP/NXjU
|
||||
sbcrMYbubazB+dhiTQNmj+pAKMLdWVvgSWvO8kz9BLrH47xFiGGsGHqOtqjv+RPY
|
||||
j56wyVT6YCjr5UpMrfSLevzqCzwvfaQIW61LpD0yQz46Y0J0Eds2WMDNz/r7guC2
|
||||
hFJRh2vV+V8h8gEeevAjBcsViir5PKpXAoIBAQC/gAQCLbqo4FylEVST3IP8rxA5
|
||||
RGbLRDJ2j+ywEzOuy2ufGI/CfxeG/+jF5E0/uBRm8rrnMmaJaNr42hF4r5kjNM5u
|
||||
ficOVucU3FluQqae73zfUFeAQBft+4tTH+sR8jo+LvEBGinW1wHv7di45I3at2HM
|
||||
jMtZgWPPIqCBIay0UKysW4eEwXYC9cWg9kPcb2y56zadrKxGZqHOPezH2A1iOuzp
|
||||
vw0mG0xHUY4Eg5aZxcWB1jMf7bbxTAAMxQiBnw0bPEf5zpWzeKL0obxT/NhCgmV7
|
||||
/Fqs0GCbXEEgJo0zAVemALOAYRW3pYvt8FoCOopo4ADyfmdWlAvzCy46k7Fo
|
||||
-----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
|
||||
AAACADW3YzUyGLLm4sD+t7+fzmEJZaus9DE827QMg8r5iQv7bL34p11Yw69mVq7+
|
||||
6p2HIRhdcR3LfwJ5XZ0RiHwdtGnyFH8OG7QDQgi2+ybka8qUhCAFDBcrz51vV7u5
|
||||
/hijsR6rFb9BKiOLJmicNucPq2uCGeZVQtfVMP4EsMo7YS23n77D1oWr1imt54RY
|
||||
otm0J9yMZSjEruHRCNCspNg6Mwx1rCqCr88B6na1KOIWeR7SXk38CTxDihwtunJf
|
||||
kHBwqWeWmNmuv52vEI2/okoTv0rshN+FTJjkYEaXk36a8vaDV43JFmTnE2rR6ziD
|
||||
U5osO5QGhMp2xeiSI8wPdCX4nv5EKgL0+4a610IAhTa70KgUB8ommwqH6wZHKuLO
|
||||
8PmGVLfUXvzOJ/tbm5uL2y6kDp60lhsr6bBwOwmCa1z6rnXGwfdPU4O9Fxu3O9gU
|
||||
TwnO5yE3ho+2xj5b/BpMNUN3KYW89KxiNfsGWrd+emDa4kq3NYQhAT6tjuALes2g
|
||||
1IThgVsgCNMziQi4gWeRWrejYGZDtYeNvdRJ6WEXEE8nrucEwtLdKFcuPKK7bZTx
|
||||
HEpxs4qkSKa4IpFJUR2mw2emzeHbLxzY89ZZLssbMCIJ6kuNfCoct7gv9y/HxL0p
|
||||
lFdCd5qSQpOiC5Xs32nQ72muMlyRviOj3jWJoN6lVkgdu4/xAAABAQD68AEIqefw
|
||||
8DhFaLE9wjJuPqJCkc/O3q5nG/eKXcihjcCebb4QduWgT1VwfemFAQChNCzF36Sh
|
||||
y0cep0mLpjE5OaaweXeOKUDeQqDQDtGKfvTYM5sLdz1VI57tX2uLM9CcV7CTIM+a
|
||||
k6hbdvLQNi/QMW0DzM1+BKQV6pkSgGdDIyib2UFhwn1UquJR90K8+CHdlX9LMR9y
|
||||
npm0wtG+0RbM7HvlzDDqQu9S5R6RCX/tRuvfo7P7vUHrpU3n251Itg8Bv6y3OFtB
|
||||
JTsts0pouXKAFESqdN5eP5UJcaevE5FlLUV+o726dvGD8VgEMEy3/aNe3oSXPrZi
|
||||
CMMS0aNxMD+tAAABAQD5pcpbrO58MbzwM+xfmmyXsK7YXCGrWPlQsa+mS65xpWyy
|
||||
c42YWqLiMfssRlWMRweDoaEOobK1ppSvUqFdVa22fSibapkgoWDsFHsTk9H0cq4i
|
||||
DR2jryk9//kwpPpMqrWAHWXwHjzV1Vzy2ZoeMdsvP1SUh/y4ttd8/URjIAMConjG
|
||||
1A206Pu7PSTlrIiBZTqxwYLcSUtPN9a6xc8nJYU1XnAC0IjRe7hT8h007SsuIEjw
|
||||
FILxULgxrD9rVljWeWJcF+Oa0neLsDazfr5gbXW9eaLYEoVdrzQEzv4v3Om3F/Y+
|
||||
/sfVi/LHht9VnbEJMsLKO1SPjAYaSYcxMLwzSCeLAAABAQC/gAQCLbqo4FylEVST
|
||||
3IP8rxA5RGbLRDJ2j+ywEzOuy2ufGI/CfxeG/+jF5E0/uBRm8rrnMmaJaNr42hF4
|
||||
r5kjNM5uficOVucU3FluQqae73zfUFeAQBft+4tTH+sR8jo+LvEBGinW1wHv7di4
|
||||
5I3at2HMjMtZgWPPIqCBIay0UKysW4eEwXYC9cWg9kPcb2y56zadrKxGZqHOPezH
|
||||
2A1iOuzpvw0mG0xHUY4Eg5aZxcWB1jMf7bbxTAAMxQiBnw0bPEf5zpWzeKL0obxT
|
||||
/NhCgmV7/Fqs0GCbXEEgJo0zAVemALOAYRW3pYvt8FoCOopo4ADyfmdWlAvzCy46
|
||||
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
|
13
workspace/xdebug.ini
Normal file
13
workspace/xdebug.ini
Normal file
@ -0,0 +1,13 @@
|
||||
; 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=0
|
||||
xdebug.remote_enable=0
|
||||
xdebug.remote_connect_back=0
|
||||
xdebug.cli_color=0
|
||||
xdebug.profiler_enable=0
|
||||
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