Compare commits
259 Commits
Author | SHA1 | Date | |
---|---|---|---|
314034255a | |||
3c8861d1d2 | |||
2d51548879 | |||
4aa3902f32 | |||
fb049ef300 | |||
e75da747a9 | |||
dd48592d8b | |||
d57a0c3888 | |||
7a13e4a343 | |||
4e7e003e87 | |||
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 | |||
a30bf83269 | |||
1fdf800988 | |||
82cbad75d4 | |||
6111ca5ff7 | |||
b393996d44 | |||
f12028576c | |||
27d3525469 | |||
8b6fdfed76 | |||
3c427d20c0 | |||
57c003722e | |||
ab4c44a434 | |||
0f7969c999 | |||
aa8f7c48a5 | |||
533925522c | |||
48a6c06ebb | |||
537f2c5033 | |||
f36f9ef6ec | |||
605c191717 | |||
f2615b9ff2 | |||
04174b476c | |||
afac432b2f | |||
2f156edafd | |||
42d551dead | |||
b7d38ef7dd | |||
c5ac8d1ada | |||
2f20216d8f | |||
5e0e120950 | |||
33b701afdc | |||
e0c18374df | |||
20adc9ca13 | |||
dd9855d411 | |||
17e252a436 | |||
dd06f1e1a0 | |||
2ba3060564 | |||
5612874b78 | |||
10af217349 | |||
e65f0dceba | |||
c792a780ee | |||
2d1c1586f5 | |||
5bb3d3b6a8 | |||
b1ec5b8d6f | |||
6e07061deb | |||
97057f259c | |||
e4f6cec536 | |||
e6cf30e7ba | |||
ed8e241007 | |||
c60cb9ab40 | |||
d58ef06907 | |||
462b5685eb | |||
11f7cfe729 | |||
d5ffc04034 | |||
062b7466f6 | |||
e1dbb972f1 | |||
419434020c | |||
2a02ed73e3 | |||
ca378ac734 | |||
67f92de4f0 | |||
c8d4461771 | |||
23b0906cd7 | |||
28a2d8e072 | |||
f97f0b0d11 | |||
05e1dd4c13 | |||
fc78ab7764 | |||
ef8579987f | |||
4dda3b969e | |||
4d2452101a | |||
233cfb5b07 | |||
63b9ec2bd8 | |||
d5a51d4de9 | |||
c7fae1a807 | |||
d6329c26b3 | |||
a96ee88692 | |||
2799a94a9f | |||
5bcbe0d291 | |||
9e7a669d5b | |||
9b084433c3 | |||
fc303dee08 | |||
d75a43c615 | |||
06337e6024 | |||
16b82d066e | |||
074deec781 | |||
2d382b683a | |||
68576f9022 | |||
2df00ecdad | |||
aeb5a6bb63 | |||
2bbf59ddda | |||
dca0545293 | |||
5f99478c76 | |||
48a53f1d24 | |||
11cdfd440b | |||
14cbe9f935 | |||
42d63236f1 | |||
d01d087431 | |||
11c65c4a00 | |||
1b9630e8a1 | |||
3a714339da | |||
65078505c1 | |||
e0b4734dab | |||
243392444f | |||
72a8fc049d | |||
de6db93da8 | |||
1af9dc5ac2 | |||
62878e7c49 | |||
3cd1f070e1 | |||
fb5ea7f42c | |||
aa8be6f95b | |||
aa0a726945 | |||
e5e04e4e18 | |||
44d8720400 | |||
f0200626ba | |||
69406db3e0 | |||
bcb749151a | |||
ca413edff4 | |||
f6d1d6f617 | |||
117382a050 | |||
2e930df2a7 | |||
4922c5fafd | |||
198c38f6cd | |||
8d216f83d5 | |||
05c5fcf216 | |||
fccee522c6 | |||
f3eb6a5fc4 | |||
685c34d12d | |||
ceba1af3ae | |||
c4100b5052 | |||
1148a3d051 | |||
bec1a32550 | |||
72cde8a8ea | |||
4f9cdb02c6 | |||
1673a80daf | |||
f130381cfe | |||
eda286ded2 | |||
a8b4b61e28 | |||
124a3553e6 | |||
3ff4aaca79 | |||
4c06a03ead | |||
1cb131ba36 | |||
99b54c5f7d | |||
8993cccc2c | |||
1090bb4db6 | |||
9c7054abe2 | |||
e7decdaaf7 | |||
18bf12bfde | |||
d829482a06 | |||
86c6389650 | |||
991e28046d | |||
ccbc73c6bc | |||
246c7366ba | |||
762e2ec07b | |||
adaaa25f47 | |||
11a13a0c33 | |||
c642560993 | |||
ea9f5c635f | |||
fd4253afb6 | |||
73310e45e8 | |||
7f91fc9798 | |||
a8a7685a40 | |||
06c4c19a6f | |||
8bff7656f6 | |||
5c9eb97db5 | |||
588819ab6d | |||
170b63a3ba | |||
19813e48c3 | |||
be7b8ee056 | |||
01a056dd25 | |||
70e1b0fe41 | |||
0959b25c05 | |||
1d8336a9e1 | |||
f0e2d83618 | |||
7f1deb0342 | |||
703887a2a6 | |||
84e6b2b6ff | |||
c3ff9e485b | |||
77f9183c83 | |||
378181044c | |||
01bdaae690 | |||
68aca9f8f9 | |||
6d0ecaecf4 | |||
a434588a66 | |||
5aa01b1757 | |||
3b2831bf1d | |||
7171996843 | |||
66f08a4f60 | |||
07a07ab3ac | |||
fb4fcdcb23 | |||
a69681b07c | |||
2c05c87400 | |||
16a1041ef5 | |||
5ef193d55b | |||
4d8a798224 | |||
1574231a80 | |||
6eb3a9bd5f | |||
377f24fe2b | |||
51b6d4f844 | |||
97500508f5 | |||
7dcf481d21 | |||
efd062fd88 | |||
504c9c59d5 | |||
4edf941872 | |||
36b49f5ae2 | |||
e49836ba90 | |||
84f766363d | |||
03c991c89d | |||
fdba7e7c09 | |||
405067d4af | |||
7f4e411d3d | |||
e946573d75 | |||
470873acd2 | |||
88d5dd7806 | |||
295a0974da | |||
cf89670671 | |||
40899bc40f | |||
64bf3222af | |||
79009cc97e | |||
571bf64eb2 | |||
75b1705820 | |||
12587bc712 | |||
81f2602464 | |||
ecefee4d65 | |||
de8cbb0605 | |||
aa338d534e | |||
ab7f3d8fd9 |
12
.editorconfig
Normal file
12
.editorconfig
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
|
||||||
|
[{Dockerfile,docker-compose.yml}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 4
|
5
.gitignore
vendored
5
.gitignore
vendored
@ -1 +1,4 @@
|
|||||||
/logs
|
.idea
|
||||||
|
/logs
|
||||||
|
/data
|
||||||
|
.env
|
||||||
|
140
_guides/contributing.md
Normal file
140
_guides/contributing.md
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
# Contributing to LaraDock
|
||||||
|
|
||||||
|
Your contribution is more than welcome. Let's keep LaraDock amazing.
|
||||||
|
|
||||||
|
|
||||||
|
### Got a Question or Problem?
|
||||||
|
|
||||||
|
If you have questions about how to use LaraDock, please direct your questions to the discussion on [Gitter](https://gitter.im/LaraDock/laradock). If you beleave your question could help others, then consider opening an [Issue](https://github.com/laradock/laradock/issues) (it will be labeled as Question).
|
||||||
|
|
||||||
|
### Found an Issue?
|
||||||
|
If you find a bug in the source code or a mistake in the documentation, you can help us by
|
||||||
|
submitting an [Issue](https://github.com/laradock/laradock/issues). Even better you can submit a Pull Request with a fix.
|
||||||
|
|
||||||
|
### Want a Feature?
|
||||||
|
You can request a new feature by submitting an [Issue](https://github.com/laradock/laradock/issues) (it will be labeled as Feature Suggestion). If you would like to implement a new feature then consider submitting a Pull Request.
|
||||||
|
|
||||||
|
|
||||||
|
## Coding Guidelines
|
||||||
|
|
||||||
|
### Support new Software
|
||||||
|
|
||||||
|
* Create folder with the software name.
|
||||||
|
|
||||||
|
* Add a `Dockerfile`, write your code there.
|
||||||
|
|
||||||
|
* You may add additional files in the software folder.
|
||||||
|
|
||||||
|
* Add the software to the `docker-compose.yml` file.
|
||||||
|
|
||||||
|
* Make sure you follow our commenting style.
|
||||||
|
|
||||||
|
* Add the software in the `Readme`.
|
||||||
|
|
||||||
|
### Edit existing Software
|
||||||
|
|
||||||
|
* Open the software (container) folder.
|
||||||
|
|
||||||
|
* Edit the files you want to update.
|
||||||
|
|
||||||
|
* **Note:** If you want to edit the base image of the `Workspace` or the `php-fpm` Containers,
|
||||||
|
you need to edit their Dockerfiles from their Github repositories. For more info read their Dockerfiles comment on the LaraDock repository.
|
||||||
|
|
||||||
|
* Make sure to update the `Readme` incase you made any changes.
|
||||||
|
|
||||||
|
## Issue/PR Submission Guidelines
|
||||||
|
|
||||||
|
### Submitting an Issue
|
||||||
|
Before you submit your issue search the archive, maybe your question was already answered.
|
||||||
|
|
||||||
|
If your issue appears to be a bug, and hasn't been reported, open a new issue.
|
||||||
|
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)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
* Make your changes in a new git branch:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git checkout -b my-fix-branch master
|
||||||
|
```
|
||||||
|
* Commit your changes using a descriptive commit message.
|
||||||
|
|
||||||
|
* Push your branch to GitHub:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git push origin my-fix-branch
|
||||||
|
```
|
||||||
|
|
||||||
|
* In GitHub, send a pull request to `laradock:master`.
|
||||||
|
* If we suggest changes then:
|
||||||
|
* Make the required updates.
|
||||||
|
* Commit your changes to your branch (e.g. `my-fix-branch`).
|
||||||
|
* Push the changes to your GitHub repository (this will update your Pull Request).
|
||||||
|
|
||||||
|
> If the PR gets too outdated we may ask you to rebase and force push to update the PR:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git rebase master -i
|
||||||
|
git push origin my-fix-branch -f
|
||||||
|
```
|
||||||
|
|
||||||
|
*WARNING. Squashing or reverting commits and forced push thereafter may remove GitHub comments on code that were previously made by you and others in your commits.*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 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:
|
||||||
|
|
||||||
|
* Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git push origin --delete my-fix-branch
|
||||||
|
```
|
||||||
|
|
||||||
|
* Check out the master branch:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git checkout master -f
|
||||||
|
```
|
||||||
|
|
||||||
|
* Delete the local branch:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git branch -D my-fix-branch
|
||||||
|
```
|
||||||
|
|
||||||
|
* Update your master with the latest upstream version:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git pull --ff upstream master
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
### Happy Coding :)
|
214
_guides/digital_ocean.md
Normal file
214
_guides/digital_ocean.md
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
#### 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 checkout develop
|
||||||
|
$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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
17
apache2/Dockerfile
Normal file
17
apache2/Dockerfile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
FROM webdevops/apache:ubuntu-16.04
|
||||||
|
|
||||||
|
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
|
||||||
|
|
||||||
|
ARG PHP_SOCKET="php-fpm:9000"
|
||||||
|
|
||||||
|
ENV WEB_PHP_SOCKET=$PHP_SOCKET
|
||||||
|
|
||||||
|
ENV WEB_DOCUMENT_ROOT=/var/www/laravel/public
|
||||||
|
|
||||||
|
EXPOSE 80 443
|
||||||
|
|
||||||
|
WORKDIR /var/www/laravel/public
|
||||||
|
|
||||||
|
ENTRYPOINT ["/opt/docker/bin/entrypoint.sh"]
|
||||||
|
|
||||||
|
CMD ["supervisord"]
|
17
beanstalkd-console/Dockerfile
Normal file
17
beanstalkd-console/Dockerfile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
FROM php:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y curl
|
||||||
|
|
||||||
|
RUN curl -sL https://github.com/ptrofimov/beanstalk_console/archive/master.tar.gz | tar xvz -C /tmp
|
||||||
|
RUN mv /tmp/beanstalk_console-master /source
|
||||||
|
|
||||||
|
RUN apt-get remove --purge -y curl && \
|
||||||
|
apt-get autoclean && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
EXPOSE 2080
|
||||||
|
|
||||||
|
CMD bash -c 'BEANSTALK_SERVERS=$BEANSTALKD_PORT_11300_TCP_ADDR:11300 php -S 0.0.0.0:2080 -t /source/public'
|
16
beanstalkd/Dockerfile
Normal file
16
beanstalkd/Dockerfile
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
FROM phusion/baseimage:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install -y beanstalkd
|
||||||
|
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
VOLUME /var/lib/beanstalkd/data
|
||||||
|
|
||||||
|
EXPOSE 11300
|
||||||
|
|
||||||
|
CMD ["/usr/bin/beanstalkd"]
|
17
caddy/Caddyfile
Normal file
17
caddy/Caddyfile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Docs: https://caddyserver.com/docs/caddyfile
|
||||||
|
0.0.0.0:80
|
||||||
|
root /var/www/laravel/public
|
||||||
|
fastcgi / php-fpm:9000 php {
|
||||||
|
index index.php
|
||||||
|
}
|
||||||
|
rewrite {
|
||||||
|
r .*
|
||||||
|
ext /
|
||||||
|
to /index.php?{query}
|
||||||
|
}
|
||||||
|
browse
|
||||||
|
log stdout
|
||||||
|
errors stderr
|
||||||
|
# Uncomment to enable TLS (HTTPS)
|
||||||
|
# Change the first list to listen on port 443 when enabling TLS
|
||||||
|
#tls self_signed
|
25
caddy/Dockerfile
Normal file
25
caddy/Dockerfile
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
FROM alpine:3.4
|
||||||
|
|
||||||
|
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
|
||||||
|
|
||||||
|
LABEL caddy_version="0.9.0" architecture="amd64"
|
||||||
|
|
||||||
|
RUN apk update \
|
||||||
|
&& apk upgrade \
|
||||||
|
&& apk add tar curl
|
||||||
|
|
||||||
|
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" \
|
||||||
|
| 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
|
||||||
|
|
||||||
|
EXPOSE 80 443 2015
|
||||||
|
|
||||||
|
WORKDIR /var/www/laravel/public
|
||||||
|
|
||||||
|
ENTRYPOINT ["caddy"]
|
||||||
|
|
||||||
|
CMD ["-conf", "/etc/Caddyfile"]
|
@ -1,44 +1,104 @@
|
|||||||
version: '2'
|
version: '2'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
|
### Workspace Utilities Container ###########################
|
||||||
|
|
||||||
|
workspace:
|
||||||
|
build:
|
||||||
|
context: ./workspace
|
||||||
|
args:
|
||||||
|
- INSTALL_XDEBUG=false
|
||||||
|
- INSTALL_MONGO=false
|
||||||
|
- INSTALL_NODE=false
|
||||||
|
- INSTALL_DRUSH=false
|
||||||
|
- COMPOSER_GLOBAL_INSTALL=false
|
||||||
|
- INSTALL_WORKSPACE_SSH=false
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
volumes_from:
|
||||||
|
- volumes_source
|
||||||
|
extra_hosts:
|
||||||
|
# IMPORTANT: Replace with your Docker Host IP (will be appended to /etc/hosts)
|
||||||
|
- "dockerhost:10.0.75.1"
|
||||||
|
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
|
||||||
|
dockerfile: Dockerfile-70
|
||||||
|
volumes_from:
|
||||||
|
- volumes_source
|
||||||
|
expose:
|
||||||
|
- "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 ##################################
|
### Nginx Server Container ##################################
|
||||||
|
|
||||||
nginx:
|
nginx:
|
||||||
build: ./nginx
|
build:
|
||||||
|
context: ./nginx
|
||||||
|
args:
|
||||||
|
- PHP_UPSTREAM=php-fpm
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- php
|
- volumes_source
|
||||||
volumes:
|
volumes:
|
||||||
- ./logs/nginx/:/var/log/nginx
|
- ./logs/nginx/:/var/log/nginx
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
links:
|
links:
|
||||||
- php
|
- php-fpm
|
||||||
|
|
||||||
### PHP Container ###########################################
|
### Apache Server Container ##################################
|
||||||
|
|
||||||
php:
|
apache2:
|
||||||
build: ./php
|
build:
|
||||||
|
context: ./apache2
|
||||||
|
args:
|
||||||
|
- PHP_SOCKET="php-fpm:9000"
|
||||||
|
volumes_from:
|
||||||
|
- volumes_source
|
||||||
volumes:
|
volumes:
|
||||||
- ../:/var/www/laravel
|
- ./logs/apache2:/var/log/apache2
|
||||||
- ./logs/php/:/usr/local/var/log
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
links:
|
||||||
|
- php-fpm
|
||||||
|
|
||||||
|
### HHVM Container ##########################################
|
||||||
|
|
||||||
|
hhvm:
|
||||||
|
build: ./hhvm
|
||||||
|
volumes_from:
|
||||||
|
- volumes_source
|
||||||
expose:
|
expose:
|
||||||
- "9000"
|
- "9000"
|
||||||
|
links:
|
||||||
### DATA Container ##########################################
|
- workspace
|
||||||
|
|
||||||
data:
|
|
||||||
build: ./data
|
|
||||||
volumes:
|
|
||||||
- /var/lib/mysql
|
|
||||||
- /var/lib/postgresql/data
|
|
||||||
- /var/lib/redis
|
|
||||||
|
|
||||||
### MySQL Container #########################################
|
### MySQL Container #########################################
|
||||||
|
|
||||||
mysql:
|
mysql:
|
||||||
build: ./mysql
|
build: ./mysql
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- volumes_data
|
||||||
ports:
|
ports:
|
||||||
- "3306:3306"
|
- "3306:3306"
|
||||||
environment:
|
environment:
|
||||||
@ -46,31 +106,149 @@ services:
|
|||||||
MYSQL_USER: homestead
|
MYSQL_USER: homestead
|
||||||
MYSQL_PASSWORD: secret
|
MYSQL_PASSWORD: secret
|
||||||
MYSQL_ROOT_PASSWORD: root
|
MYSQL_ROOT_PASSWORD: root
|
||||||
links:
|
|
||||||
- php
|
|
||||||
|
|
||||||
### PostgreSQL Container ####################################
|
### PostgreSQL Container ####################################
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
build: ./postgres
|
build: ./postgres
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- volumes_data
|
||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: homestead
|
POSTGRES_DB: homestead
|
||||||
POSTGRES_USER: homestead
|
POSTGRES_USER: homestead
|
||||||
POSTGRES_PASSWORD: secret
|
POSTGRES_PASSWORD: secret
|
||||||
links:
|
|
||||||
- php
|
### MariaDB Container #######################################
|
||||||
|
|
||||||
|
mariadb:
|
||||||
|
build: ./mariadb
|
||||||
|
volumes_from:
|
||||||
|
- volumes_data
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: homestead
|
||||||
|
MYSQL_USER: homestead
|
||||||
|
MYSQL_PASSWORD: secret
|
||||||
|
MYSQL_ROOT_PASSWORD: root
|
||||||
|
|
||||||
|
### Neo4j Container #########################################
|
||||||
|
|
||||||
|
neo4j:
|
||||||
|
build: ./neo4j
|
||||||
|
ports:
|
||||||
|
- "7474:7474"
|
||||||
|
- "1337:1337"
|
||||||
|
environment:
|
||||||
|
- NEO4J_AUTH=homestead:secret
|
||||||
|
volumes_from:
|
||||||
|
- volumes_data
|
||||||
|
|
||||||
|
### MongoDB Container #######################################
|
||||||
|
|
||||||
|
mongo:
|
||||||
|
build: ./mongo
|
||||||
|
ports:
|
||||||
|
- "27017:27017"
|
||||||
|
volumes_from:
|
||||||
|
- volumes_data
|
||||||
|
|
||||||
### Redis Container #########################################
|
### Redis Container #########################################
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
build: ./redis
|
build: ./redis
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- data
|
- volumes_data
|
||||||
ports:
|
ports:
|
||||||
- "6379:6379"
|
- "6379:6379"
|
||||||
|
|
||||||
|
### Memcached Container #####################################
|
||||||
|
|
||||||
|
memcached:
|
||||||
|
build: ./memcached
|
||||||
|
volumes_from:
|
||||||
|
- volumes_data
|
||||||
|
ports:
|
||||||
|
- "11211:11211"
|
||||||
|
links:
|
||||||
|
- php-fpm
|
||||||
|
|
||||||
|
### Beanstalkd Container ####################################
|
||||||
|
|
||||||
|
beanstalkd:
|
||||||
|
build: ./beanstalkd
|
||||||
|
ports:
|
||||||
|
- "11300:11300"
|
||||||
|
privileged: true
|
||||||
|
links:
|
||||||
|
- php-fpm
|
||||||
|
|
||||||
|
### Beanstalkd Console Container ############################
|
||||||
|
|
||||||
|
beanstalkd-console:
|
||||||
|
build: ./beanstalkd-console
|
||||||
|
ports:
|
||||||
|
- "2080:2080"
|
||||||
|
links:
|
||||||
|
- beanstalkd
|
||||||
|
|
||||||
|
### Caddy Server Container ##################################
|
||||||
|
|
||||||
|
caddy:
|
||||||
|
build: ./caddy
|
||||||
|
volumes_from:
|
||||||
|
- volumes_source
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
- "2015:2015"
|
||||||
|
volumes:
|
||||||
|
- ./caddy/Caddyfile:/etc/Caddyfile
|
||||||
|
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:
|
||||||
|
- "8000:80"
|
||||||
|
links:
|
||||||
|
# for mysql container
|
||||||
|
- "mysql:db"
|
||||||
|
# for mariadb container
|
||||||
|
# - "mariadb:db"
|
||||||
|
|
||||||
|
### Laravel Application Code Container ######################
|
||||||
|
|
||||||
|
volumes_source:
|
||||||
|
build: ./volumes/application
|
||||||
|
volumes:
|
||||||
|
- ../:/var/www/laravel
|
||||||
|
# Demonstration of how to mount multiple sites
|
||||||
|
# - ../../site_a/:/var/www/site_a
|
||||||
|
# - ../../site_b/:/var/www/site_b
|
||||||
|
|
||||||
|
### Databases Data Container ################################
|
||||||
|
|
||||||
|
volumes_data:
|
||||||
|
build: ./volumes/data
|
||||||
|
volumes:
|
||||||
|
- ./data/mysql:/var/lib/mysql
|
||||||
|
- ./data/postgres:/var/lib/postgres
|
||||||
|
- ./data/memcached:/var/lib/memcached
|
||||||
|
- ./data/redis:/data
|
||||||
|
- ./data/neo4j:/var/lib/neo4j/data
|
||||||
|
- ./data/mongo:/data/db
|
||||||
|
- ./data/sessions:/sessions
|
||||||
|
|
||||||
### Add more Containers below ###############################
|
### Add more Containers below ###############################
|
||||||
|
23
hhvm/Dockerfile
Normal file
23
hhvm/Dockerfile
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
FROM ubuntu:14.04
|
||||||
|
|
||||||
|
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
|
||||||
|
|
||||||
|
RUN apt-get update -y \
|
||||||
|
&& apt-get install -y software-properties-common \
|
||||||
|
&& add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main" \
|
||||||
|
&& apt-get update -y \
|
||||||
|
&& apt-get install -y hhvm \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN mkdir -p /var/www/laravel
|
||||||
|
|
||||||
|
ADD server.ini /etc/hhvm/server.ini
|
||||||
|
|
||||||
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
|
WORKDIR /var/www/laravel
|
||||||
|
|
||||||
|
CMD ["/usr/bin/hhvm", "-m", "server", "-c", "/etc/hhvm/server.ini"]
|
||||||
|
|
||||||
|
EXPOSE 9000
|
20
hhvm/server.ini
Normal file
20
hhvm/server.ini
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
; php options
|
||||||
|
|
||||||
|
pid = /var/run/hhvm/pid
|
||||||
|
|
||||||
|
; hhvm specific
|
||||||
|
hhvm.server.port = 9000
|
||||||
|
hhvm.server.type = fastcgi
|
||||||
|
hhvm.server.default_document = index.php
|
||||||
|
hhvm.server.error_document404 = index.php
|
||||||
|
hhvm.server.upload.upload_max_file_size = 25M
|
||||||
|
hhvm.log.level = Error
|
||||||
|
hhvm.log.header = true
|
||||||
|
hhvm.log.access[default][file] = /var/log/hhvm/access.log
|
||||||
|
hhvm.log.access[default][format] = "%h %l %u %t \"%r\" %>s %b"
|
||||||
|
hhvm.server.source_root=/var/www/laravel/public
|
||||||
|
hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc
|
||||||
|
|
||||||
|
; Uncomment to log to files instead of STDOUT
|
||||||
|
;hhvm.log.use_log_file = true
|
||||||
|
;hhvm.log.file = /var/log/hhvm/error.log
|
7
mariadb/Dockerfile
Normal file
7
mariadb/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
FROM mariadb:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
CMD ["mysqld"]
|
||||||
|
|
||||||
|
EXPOSE 3306
|
7
memcached/Dockerfile
Normal file
7
memcached/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
FROM memcached:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
CMD ["memcached"]
|
||||||
|
|
||||||
|
EXPOSE 11211
|
12
mongo/Dockerfile
Normal file
12
mongo/Dockerfile
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
FROM mongo:latest
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
#COPY mongo.conf /usr/local/etc/mongo/mongo.conf
|
||||||
|
|
||||||
|
VOLUME /data/db /data/configdb
|
||||||
|
|
||||||
|
CMD ["mongod"]
|
||||||
|
|
||||||
|
EXPOSE 27017
|
||||||
|
|
@ -2,8 +2,6 @@ FROM mysql:latest
|
|||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
VOLUME /var/lib/mysql
|
|
||||||
|
|
||||||
CMD ["mysqld"]
|
CMD ["mysqld"]
|
||||||
|
|
||||||
EXPOSE 3306
|
EXPOSE 3306
|
||||||
|
7
neo4j/Dockerfile
Normal file
7
neo4j/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
FROM tpires/neo4j
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
VOLUME /var/lib/neo4j/data
|
||||||
|
|
||||||
|
EXPOSE 7474 1337
|
@ -1,13 +1,18 @@
|
|||||||
FROM nginx:latest
|
FROM nginx:alpine
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
ADD nginx.conf /etc/nginx/
|
ADD nginx.conf /etc/nginx/
|
||||||
ADD laravel.conf /etc/nginx/sites-available/
|
COPY sites/*.conf /etc/nginx/sites-available/
|
||||||
|
|
||||||
RUN echo "upstream php-upstream { server php:9000; }" > /etc/nginx/conf.d/upstream.conf
|
ARG PHP_UPSTREAM=php-fpm
|
||||||
|
|
||||||
RUN usermod -u 1000 www-data
|
RUN apk update \
|
||||||
|
&& apk upgrade \
|
||||||
|
&& apk add --no-cache bash \
|
||||||
|
&& adduser -D -H -u 1000 -s /bin/bash www-data \
|
||||||
|
&& rm /etc/nginx/conf.d/default.conf \
|
||||||
|
&& echo "upstream php-upstream { server ${PHP_UPSTREAM}:9000; }" > /etc/nginx/conf.d/upstream.conf
|
||||||
|
|
||||||
CMD ["nginx"]
|
CMD ["nginx"]
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
user www-data;
|
user www-data;
|
||||||
worker_processes 4;
|
worker_processes 4;
|
||||||
pid /run/nginx.pid;
|
pid /run/nginx.pid;
|
||||||
|
daemon off;
|
||||||
|
|
||||||
events {
|
events {
|
||||||
worker_connections 2048;
|
worker_connections 2048;
|
||||||
@ -15,15 +16,14 @@ http {
|
|||||||
tcp_nodelay on;
|
tcp_nodelay on;
|
||||||
keepalive_timeout 15;
|
keepalive_timeout 15;
|
||||||
types_hash_max_size 2048;
|
types_hash_max_size 2048;
|
||||||
|
client_max_body_size 20M;
|
||||||
include /etc/nginx/mime.types;
|
include /etc/nginx/mime.types;
|
||||||
default_type application/octet-stream;
|
default_type application/octet-stream;
|
||||||
access_log off;
|
access_log /var/log/nginx/access.log;
|
||||||
error_log off;
|
error_log /var/log/nginx/error.log;
|
||||||
gzip on;
|
gzip on;
|
||||||
gzip_disable "msie6";
|
gzip_disable "msie6";
|
||||||
include /etc/nginx/conf.d/*.conf;
|
include /etc/nginx/conf.d/*.conf;
|
||||||
include /etc/nginx/sites-available/*;
|
include /etc/nginx/sites-available/*;
|
||||||
open_file_cache max=100;
|
open_file_cache max=100;
|
||||||
}
|
}
|
||||||
|
|
||||||
daemon off;
|
|
||||||
|
57
nginx/sites/framework-examples/drupal_8.conf
Normal file
57
nginx/sites/framework-examples/drupal_8.conf
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
#domain name
|
||||||
|
server_name drupal8.dev;
|
||||||
|
|
||||||
|
#file document root. This has to match one of the volumes in docer-composer.yml
|
||||||
|
root /var/www/drupal8;
|
||||||
|
|
||||||
|
# This is the full path to your index file
|
||||||
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
|
## serve imagecache files directly or redirect to drupal if they do not exist.
|
||||||
|
location ~* files/styles {
|
||||||
|
access_log off;
|
||||||
|
expires 30d;
|
||||||
|
try_files $uri @drupal;
|
||||||
|
}
|
||||||
|
|
||||||
|
## serve imagecache files directly or redirect to drupal if they do not exist.
|
||||||
|
location ~* ^.+.(xsl|xml)$ {
|
||||||
|
access_log off;
|
||||||
|
expires 1d;
|
||||||
|
try_files $uri @drupal;
|
||||||
|
}
|
||||||
|
|
||||||
|
## Images and static content is treated different
|
||||||
|
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
|
||||||
|
access_log off;
|
||||||
|
expires 30d;
|
||||||
|
}
|
||||||
|
|
||||||
|
location / {
|
||||||
|
index index.php;
|
||||||
|
# This is cool because no php is touched for static content
|
||||||
|
try_files $uri $uri/ @rewrite;
|
||||||
|
expires max;
|
||||||
|
}
|
||||||
|
|
||||||
|
location @drupal {
|
||||||
|
rewrite ^/(.*)$ /index.php?q=$1 last;
|
||||||
|
}
|
||||||
|
|
||||||
|
location @rewrite {
|
||||||
|
# Some modules enforce no slash (/) at the end of the URL
|
||||||
|
# Else this rewrite block wouldn't be needed (GlobalRedirect)
|
||||||
|
rewrite ^/(.*)$ /index.php?q=$1;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ .php$ {
|
||||||
|
fastcgi_pass php-upstream;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,9 @@
|
|||||||
server {
|
server {
|
||||||
|
|
||||||
listen 80 default_server;
|
listen 80 default_server;
|
||||||
listen [::]:80 default_server ipv6only=on;
|
listen [::]:80 default_server ipv6only=on;
|
||||||
|
|
||||||
|
server_name laravel;
|
||||||
root /var/www/laravel/public;
|
root /var/www/laravel/public;
|
||||||
index index.php index.html index.htm;
|
index index.php index.html index.htm;
|
||||||
|
|
28
nginx/sites/site_a.conf
Normal file
28
nginx/sites/site_a.conf
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
server {
|
||||||
|
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
server_name site_a;
|
||||||
|
root /var/www/site_a/public;
|
||||||
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php$is_args$args;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
try_files $uri /index.php =404;
|
||||||
|
fastcgi_pass php-upstream;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ /\.ht {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
28
nginx/sites/site_b.conf
Normal file
28
nginx/sites/site_b.conf
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
server {
|
||||||
|
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
server_name site_b;
|
||||||
|
root /var/www/site_b/public;
|
||||||
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php$is_args$args;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
try_files $uri /index.php =404;
|
||||||
|
fastcgi_pass php-upstream;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ /\.ht {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
117
php-fpm/Dockerfile-56
Normal file
117
php-fpm/Dockerfile-56
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Image Setup
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# To edit the 'php-fpm' base Image, visit its repository on Github
|
||||||
|
# https://github.com/LaraDock/php-fpm
|
||||||
|
#
|
||||||
|
# To change its version, see the available Tags on the Docker Hub:
|
||||||
|
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM laradock/php-fpm:5.6--1.2
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Mandatory Software's Installation
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
|
||||||
|
# are installed on the base image 'laradock/php-fpm' image. If you want
|
||||||
|
# to add more Software's or remove existing one, you need to edit the
|
||||||
|
# base image (https://github.com/LaraDock/php-fpm).
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Optional Software's Installation
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Optional Software's will only be installed if you set them to `true`
|
||||||
|
# in the `docker-compose.yml` before the build.
|
||||||
|
# Example:
|
||||||
|
# - INSTALL_ZIP_ARCHIVE=true
|
||||||
|
#
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# xDebug:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
ARG INSTALL_XDEBUG=true
|
||||||
|
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
||||||
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||||
|
# 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}
|
||||||
|
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||||
|
# 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}
|
||||||
|
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||||
|
# Install the zip extension
|
||||||
|
pecl install zip && \
|
||||||
|
docker-php-ext-enable zip \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# PHP Memcached:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
ARG INSTALL_MEMCACHED=true
|
||||||
|
ENV INSTALL_MEMCACHED ${INSTALL_MEMCACHED}
|
||||||
|
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||||
|
# Install the php memcached extension
|
||||||
|
pecl install memcached && \
|
||||||
|
docker-php-ext-enable memcached \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Opcache:
|
||||||
|
#####################################
|
||||||
|
ARG INSTALL_OPCACHE=true
|
||||||
|
ENV INSTALL_OPCACHE ${INSTALL_OPCACHE}
|
||||||
|
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||||
|
docker-php-ext-install opcache && \
|
||||||
|
docker-php-ext-enable opcache \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Final Touch
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
|
||||||
|
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
||||||
|
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||||
|
|
||||||
|
RUN rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
|
WORKDIR /var/www/laravel
|
||||||
|
|
||||||
|
CMD ["php-fpm"]
|
||||||
|
|
||||||
|
EXPOSE 9000
|
130
php-fpm/Dockerfile-70
Normal file
130
php-fpm/Dockerfile-70
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Image Setup
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# To edit the 'php-fpm' base Image, visit its repository on Github
|
||||||
|
# https://github.com/LaraDock/php-fpm
|
||||||
|
#
|
||||||
|
# To change its version, see the available Tags on the Docker Hub:
|
||||||
|
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM laradock/php-fpm:7.0--1.2
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Mandatory Software's Installation
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
|
||||||
|
# are installed on the base image 'laradock/php-fpm' image. If you want
|
||||||
|
# to add more Software's or remove existing one, you need to edit the
|
||||||
|
# base image (https://github.com/LaraDock/php-fpm).
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Optional Software's Installation
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Optional Software's will only be installed if you set them to `true`
|
||||||
|
# in the `docker-compose.yml` before the build.
|
||||||
|
# Example:
|
||||||
|
# - INSTALL_ZIP_ARCHIVE=true
|
||||||
|
#
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# xDebug:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
ARG INSTALL_XDEBUG=true
|
||||||
|
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
||||||
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||||
|
# 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}
|
||||||
|
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||||
|
# 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}
|
||||||
|
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||||
|
# Install the zip extension
|
||||||
|
pecl install zip && \
|
||||||
|
docker-php-ext-enable zip \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# PHP Memcached:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
ARG INSTALL_MEMCACHED=true
|
||||||
|
ENV INSTALL_MEMCACHED ${INSTALL_MEMCACHED}
|
||||||
|
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
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Opcache:
|
||||||
|
#####################################
|
||||||
|
ARG INSTALL_OPCACHE=true
|
||||||
|
ENV INSTALL_OPCACHE ${INSTALL_OPCACHE}
|
||||||
|
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||||
|
docker-php-ext-install opcache && \
|
||||||
|
docker-php-ext-enable opcache \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Final Touch
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
|
||||||
|
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
||||||
|
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||||
|
|
||||||
|
RUN rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
|
WORKDIR /var/www/laravel
|
||||||
|
|
||||||
|
CMD ["php-fpm"]
|
||||||
|
|
||||||
|
EXPOSE 9000
|
13
php-fpm/laravel.ini
Normal file
13
php-fpm/laravel.ini
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
date.timezone=UTC
|
||||||
|
display_errors=Off
|
||||||
|
log_errors=On
|
||||||
|
|
||||||
|
; Maximum amount of memory a script may consume (128MB)
|
||||||
|
; http://php.net/memory-limit
|
||||||
|
memory_limit = 128M
|
||||||
|
; Maximum allowed size for uploaded files.
|
||||||
|
; http://php.net/upload-max-filesize
|
||||||
|
upload_max_filesize = 20M
|
||||||
|
; Sets max size of post data allowed.
|
||||||
|
; http://php.net/post-max-size
|
||||||
|
post_max_size = 20M
|
12
php-fpm/xdebug.ini
Normal file
12
php-fpm/xdebug.ini
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
|
||||||
|
|
||||||
|
xdebug.remote_autostart=1
|
||||||
|
xdebug.remote_enable=1
|
||||||
|
xdebug.remote_connect_back=1
|
||||||
|
xdebug.cli_color=1
|
||||||
|
xdebug.remote_handler=dbgp
|
||||||
|
xdebug.remote_mode=req
|
||||||
|
|
||||||
|
xdebug.remote_port=9000
|
||||||
|
xdebug.remote_host=dockerhost
|
||||||
|
xdebug.idekey=PHPSTORM
|
@ -1,16 +0,0 @@
|
|||||||
FROM php:7.0-fpm
|
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|
||||||
|
|
||||||
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
|
||||||
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
|
||||||
|
|
||||||
# Install extensions using the helper script provided by the base image
|
|
||||||
RUN docker-php-ext-install \
|
|
||||||
pdo_mysql
|
|
||||||
|
|
||||||
RUN usermod -u 1000 www-data
|
|
||||||
|
|
||||||
CMD ["php-fpm"]
|
|
||||||
|
|
||||||
EXPOSE 9000
|
|
@ -1,3 +0,0 @@
|
|||||||
date.timezone = UTC
|
|
||||||
display_errors = Off
|
|
||||||
log_errors = On
|
|
11
phpmyadmin/Dockerfile
Normal file
11
phpmyadmin/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/run.sh" ]
|
@ -2,8 +2,6 @@ FROM postgres:latest
|
|||||||
|
|
||||||
MAINTAINER Ben M <git@bmagg.com>
|
MAINTAINER Ben M <git@bmagg.com>
|
||||||
|
|
||||||
VOLUME /var/lib/postgresql/data
|
|
||||||
|
|
||||||
CMD ["postgres"]
|
CMD ["postgres"]
|
||||||
|
|
||||||
EXPOSE 5432
|
EXPOSE 5432
|
@ -4,6 +4,8 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
|
|
||||||
#COPY redis.conf /usr/local/etc/redis/redis.conf
|
#COPY redis.conf /usr/local/etc/redis/redis.conf
|
||||||
|
|
||||||
CMD [ "redis-server" ]
|
VOLUME /data
|
||||||
|
|
||||||
EXPOSE 6379
|
EXPOSE 6379
|
||||||
|
|
||||||
|
CMD ["redis-server"]
|
||||||
|
7
volumes/application/Dockerfile
Normal file
7
volumes/application/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
FROM debian:jessie
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
WORKDIR /var/www/laravel
|
||||||
|
|
||||||
|
CMD ["true"]
|
177
workspace/Dockerfile
Normal file
177
workspace/Dockerfile
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Image Setup
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# To edit the 'workspace' base Image, visit its repository on Github
|
||||||
|
# https://github.com/LaraDock/workspace
|
||||||
|
#
|
||||||
|
# To change its version, see the available Tags on the Docker Hub:
|
||||||
|
# https://hub.docker.com/r/laradock/workspace/tags/
|
||||||
|
#
|
||||||
|
|
||||||
|
FROM laradock/workspace:1.1
|
||||||
|
|
||||||
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Mandatory Software's Installation
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Mandatory Software's such as ("php7.0-cli", "git", "vim", ....) are
|
||||||
|
# installed on the base image 'laradock/workspace' image. If you want
|
||||||
|
# to add more Software's or remove existing one, you need to edit the
|
||||||
|
# base image (https://github.com/LaraDock/workspace).
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Optional Software's Installation
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# - COMPOSER_GLOBAL_INSTALL= false
|
||||||
|
# - INSTALL_NODE= false
|
||||||
|
# - INSTALL_DRUSH= 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
|
||||||
|
# ADD for REMOTE debugging
|
||||||
|
COPY ./xdebug.ini /etc/php/7.0/cli/conf.d/xdebug.ini
|
||||||
|
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# ssh:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# Check if ssh needs to be installed
|
||||||
|
# See: https://github.com/phusion/baseimage-docker#enabling_ssh
|
||||||
|
ADD insecure_id_rsa /tmp/id_rsa
|
||||||
|
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
|
||||||
|
ARG INSTALL_WORKSPACE_SSH=true
|
||||||
|
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
||||||
|
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
||||||
|
rm -f /etc/service/sshd/down && \
|
||||||
|
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
||||||
|
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
||||||
|
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
||||||
|
&& rm -f /tmp/id_rsa* \
|
||||||
|
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
||||||
|
&& chmod 400 /root/.ssh/id_rsa \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# MongoDB:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# 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:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# Add a non-root user to prevent files being created with root permissions on host machine.
|
||||||
|
ARG PUID=1000
|
||||||
|
ARG PGID=1000
|
||||||
|
RUN groupadd -g $PGID laradock && \
|
||||||
|
useradd -u $PUID -g laradock -m laradock
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Composer:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# Add the composer.json
|
||||||
|
COPY ./composer.json /home/laradock/.composer/composer.json
|
||||||
|
|
||||||
|
# Make sure that ~/.composer belongs to laradock
|
||||||
|
RUN chown -R laradock:laradock /home/laradock/.composer
|
||||||
|
USER laradock
|
||||||
|
|
||||||
|
# Check if global install need to be ran
|
||||||
|
ARG COMPOSER_GLOBAL_INSTALL=true
|
||||||
|
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
||||||
|
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
||||||
|
# run the install
|
||||||
|
composer global install \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Drush:
|
||||||
|
#####################################
|
||||||
|
USER root
|
||||||
|
ENV DRUSH_VERSION 8.1.2
|
||||||
|
ARG INSTALL_DRUSH=true
|
||||||
|
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
|
||||||
|
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
||||||
|
# Install Drush 8 with the phar file.
|
||||||
|
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
|
||||||
|
chmod +x /usr/local/bin/drush && \
|
||||||
|
drush core-status \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
USER laradock
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
# Node / NVM:
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
# Check if NVM needs to be installed
|
||||||
|
ARG INSTALL_NODE=true
|
||||||
|
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 \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
# Wouldn't execute when added to the RUN statement in the above block
|
||||||
|
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
|
||||||
|
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||||
|
echo "" >> ~/.bashrc && \
|
||||||
|
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
|
||||||
|
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Final Touch
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
USER root
|
||||||
|
RUN apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
# Set default work directory
|
||||||
|
WORKDIR /var/www/laravel
|
5
workspace/composer.json
Normal file
5
workspace/composer.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"require": {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
51
workspace/insecure_id_rsa
Normal file
51
workspace/insecure_id_rsa
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
-----END RSA PRIVATE KEY-----
|
1
workspace/insecure_id_rsa.pub
Normal file
1
workspace/insecure_id_rsa.pub
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQD0tfQNVXxVjST53ny/5Op7ot+GeIGEGAEnr9kgYAXK6GqnJ/3UOfWKFxl4gEusLj4hpGrT/GJVx2nIG7d/IaRifJvns+Lak4Wj+17zyPRF54/mic6a0MAREJH5aTOLuSK+DhnhTUqAt4mfdHpYmBXWdTAXDCg8gP5QLdGkdxL9M+GBk4tKiDx1hRfHV9uY6ci0lspQrhnPzzeWLktTA8uWYZlus1gv3SXX6zVD2+XB6/J7ZarNcK9iHoMLddFggSdnGs6kNLJQe0DAwncdeCQizcdXV2A9O33vaY/b0A1obUxuoCit629AwyQ9C/71f3rBSrfgUSb1pOVPmhLRJDZenf/NS8FIW194/u5slvr1u6fj/iiCYctt0PNg00UAnlybWDDKD3l5e8Kbl16uTw1/5AEc6Wl3aCmtWYpwRGeue/hnUzOXr9/SjhQLfB+ZCASt83N+u0kV7ni7G5/04z11dqZwkk6x1SAzWGJnp76piwd4AP2fu8KqNAmWsyEIZmmR5JSGS5i4sGuSGog6rZWop1LwIfNjdOLFbs+rnF0oOmpgZReo8fH+PmOkq3iHaPQvXO3Cj2d52HVxtHI+n2iKjDu3CzHIP31vfqsZKHfmoo3ckFW4yfrPcXy0gQswPj0jJUIbKLb6OfuptUsQ5SvkiwWoW4irnO3lKF9KLo3t7w== insecure@laradock
|
12
workspace/xdebug.ini
Normal file
12
workspace/xdebug.ini
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
|
||||||
|
|
||||||
|
xdebug.remote_autostart=1
|
||||||
|
xdebug.remote_enable=1
|
||||||
|
xdebug.remote_connect_back=1
|
||||||
|
xdebug.cli_color=1
|
||||||
|
xdebug.remote_handler=dbgp
|
||||||
|
xdebug.remote_mode=req
|
||||||
|
|
||||||
|
xdebug.remote_port=9000
|
||||||
|
xdebug.remote_host=dockerhost
|
||||||
|
xdebug.idekey=PHPSTORM
|
91
xdebugPhpFpm
Normal file
91
xdebugPhpFpm
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
#! /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)
|
||||||
|
|
||||||
|
xdebug_status ()
|
||||||
|
{
|
||||||
|
echo 'xDebug status'
|
||||||
|
|
||||||
|
# If running on Windows, need to prepend with winpty :(
|
||||||
|
if [[ "$(expr substr $(uname -s) 1 5)" == "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 [[ "$(expr substr $(uname -s) 1 5)" == "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 [[ "$(expr substr $(uname -s) 1 5)" == "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